PHP ofrece varias maneras de escribir datos en archivos, ofreciendo flexibilidad dependiendo de tus necesidades. Este artículo explora dos métodos principales: usando file_put_contents()
para escritura directa y usando fopen()
, fwrite()
, y fclose()
para un control más preciso.
Tabla de Contenido
Usando file_put_contents()
file_put_contents()
es el método más simple para escribir datos en un archivo. Acepta el nombre del archivo y los datos como argumentos. Los archivos existentes se sobrescriben; se crean nuevos archivos si no existen.
<?php
$data = "Este es el texto que se escribirá.n";
$filename = "my_file.txt";
if (file_put_contents($filename, $data) !== false) {
echo "Datos escritos correctamente en $filename";
} else {
echo "Error al escribir en $filename";
}
?>
Este fragmento escribe la cadena $data
en my_file.txt
. La sentencia if
comprueba el valor devuelto (número de bytes escritos en caso de éxito, false
en caso de fallo).
Anexando a un archivo: Usa la bandera FILE_APPEND
para anexar en lugar de sobrescribir:
<?php
$data = "Este texto se anexará.n";
$filename = "my_file.txt";
if (file_put_contents($filename, $data, FILE_APPEND) !== false) {
echo "Datos anexados correctamente a $filename";
} else {
echo "Error al anexar a $filename";
}
?>
Usando fopen()
, fwrite()
, y fclose()
Para un control más granular, usa fopen()
, fwrite()
, y fclose()
. fopen()
abre el archivo, fwrite()
escribe datos, y fclose()
lo cierra. Esto es beneficioso para archivos grandes o múltiples operaciones de escritura.
<?php
$filename = "my_file.txt";
$handle = fopen($filename, 'w'); // 'w' abre para escritura, sobrescribiendo el contenido existente
if ($handle) {
$data = "Esta es la primera línea.n";
$data .= "Esta es la segunda línea.n";
fwrite($handle, $data);
fclose($handle);
echo "Datos escritos correctamente en $filename";
} else {
echo "Error al abrir $filename";
}
?>
Este ejemplo abre el archivo en modo escritura (‘w’). El contenido existente se borra. fwrite()
escribe los datos. fclose()
es crucial para asegurar que los datos se escriban y los recursos se liberen.
Anexando con fopen()
: Usa el modo ‘a’ para anexar:
<?php
$filename = "my_file.txt";
$handle = fopen($filename, 'a'); // 'a' abre para anexar
if ($handle) {
$data = "Este texto se anexará.n";
fwrite($handle, $data);
fclose($handle);
echo "Datos anexados correctamente a $filename";
} else {
echo "Error al abrir $filename";
}
?>
Siempre maneja errores (ej. archivos no escribibles, problemas de permisos). Comprueba los valores devueltos de las funciones e implementa un manejo de errores apropiado. Elige entre file_put_contents()
y fopen()/fwrite()/fclose()
según tus necesidades. file_put_contents()
es conciso para tareas simples; fopen()/fwrite()/fclose()
ofrece mayor control para escenarios complejos.