Escritura y adición en archivos
Escriba datos en archivos con file_put_contents y FILE_APPEND.
Escritura y adición en archivos es una lección gratuita de PHP Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de PHP Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de PHP Academy incluye 4 lecciones en total.
Escribir archivos en PHP
PHP ofrece varias formas de escribir en archivos:
file_put_contents()— escribe una cadena en un archivo en una sola llamadafopen()+fwrite()— escritura basada en streams- Use la bandera
FILE_APPENDpara añadir contenido en lugar de sobrescribirlo
file_put_contents()
Escribe una cadena en un archivo: crea el archivo si no existe y lo sobrescribe si ya existe:
<?php
$data = "Hello, PHP!\nThis is line 2.\n";
$bytes = file_put_contents('/tmp/output.txt', $data);
if ($bytes === false) {
echo 'Failed to write';
} else {
echo "Wrote $bytes bytes";
}Añadir contenido con FILE_APPEND
Añada contenido al final de un archivo existente con la bandera FILE_APPEND:
<?php
$logEntry = date('Y-m-d H:i:s') . ' - User logged in' . PHP_EOL;
file_put_contents(
'/var/log/app.log',
$logEntry,
FILE_APPEND | LOCK_EX // append + exclusive lock
);Modos de escritura de fopen
Los modos de apertura de fopen determinan cómo se abre el archivo:
'w'— escribe, trunca a longitud cero o crea el archivo'a'— escribe, añade contenido y crea el archivo si no existe'x'— escribe y falla si el archivo ya existe'r+'— lee y escribe desde el principio; el archivo debe existir
fopen + fwrite
Escritura basada en streams para un control preciso:
<?php
$handle = fopen('/tmp/report.txt', 'w');
if ($handle === false) die('Cannot open file');
fwrite($handle, "Report generated: " . date('Y-m-d') . "\n");
fwrite($handle, str_repeat('-', 40) . "\n");
fwrite($handle, "Total: 1234\n");
fclose($handle);
echo 'Report written';Escribir archivos CSV
Use fputcsv() para escribir líneas CSV con el formato correcto:
<?php
$rows = [
['Name', 'Email', 'Score'],
['Alice', 'alice@test.com', 95],
['Bob', 'bob@test.com', 87],
];
$handle = fopen('/tmp/results.csv', 'w');
foreach ($rows as $row) {
fputcsv($handle, $row);
}
fclose($handle);Escribir archivos JSON
Serialice los datos de PHP a JSON y escríbalos en un archivo:
<?php
$config = [
'version' => '2.0',
'debug' => false,
'db' => ['host' => 'localhost', 'port' => 3306],
];
$json = json_encode($config, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
file_put_contents('/app/config.json', $json);
echo 'Config saved';Escrituras atómicas de archivos
Escriba en un archivo temporal y después cámbiele el nombre para realizar actualizaciones atómicas y seguras ante fallos:
<?php
$target = '/app/data.json';
$tmpFile = $target . '.tmp.' . uniqid();
$data = json_encode(['ts' => time(), 'value' => 42]);
file_put_contents($tmpFile, $data, LOCK_EX);
rename($tmpFile, $target); // atomic on most OSes
echo 'File updated atomically';Permisos y propiedad
Establezca los permisos del archivo después de crearlo con chmod():
<?php
$path = '/var/www/uploads/avatar.jpg';
// Copy uploaded temp file to destination
move_uploaded_file($_FILES['avatar']['tmp_name'], $path);
// Set permissions (owner read/write, group read, world read)
chmod($path, 0644);
echo 'File uploaded and permissions set';Archivos temporales
Cree archivos temporales de forma segura con tempnam() o tmpfile():
<?php
// Create a named temp file
$tmpPath = tempnam(sys_get_temp_dir(), 'php_');
file_put_contents($tmpPath, 'temp data');
$content = file_get_contents($tmpPath);
unlink($tmpPath); // delete when done
// Anonymous temp file handle
$tmp = tmpfile();
fwrite($tmp, 'anonymous temp');
// auto-deleted when $tmp is garbage collectedCopiar y mover archivos
Copie y cambie el nombre o mueva archivos con las funciones integradas:
<?php
// Copy a file
copy('/src/template.html', '/dst/page.html');
// Move / rename
rename('/tmp/upload_abc', '/storage/images/photo.jpg');
// Delete
unlink('/tmp/old_file.txt');
// Check if file was copied successfully
if (copy('a.txt', 'backup.txt')) {
echo 'Backup created';
}Comprobación rápida
¿Qué bandera se pasa a file_put_contents() para añadir contenido al final de un archivo en lugar de sobrescribirlo?
Resumen: Escritura de archivos
Conceptos esenciales para escribir archivos:
file_put_contents()— la forma más sencilla de escribir y sobrescribir- Bandera
FILE_APPENDpara añadir contenido fopen('a', ...)+fwrite()para escritura mediante streamsfputcsv()para generar CSV- Escrituras atómicas: escribir en un archivo temporal +
rename() chmod()para establecer permisos después de crear el archivo
Preguntas frecuentes
¿La lección «Escritura y adición en archivos» es gratis?
Sí — el texto completo de «Escritura y adición en archivos» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de PHP Academy, actualiza a CoddyKit PRO. El curso de PHP Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Escritura y adición en archivos»?
Escriba datos en archivos con file_put_contents y FILE_APPEND. Practicas PHP Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar PHP Academy?
No se requiere experiencia previa. PHP Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «Escritura y adición en archivos»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de PHP Academy?
Sí. Cada lección de PHP Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Lectura de archivos con PHP
- Escritura y adición en archivos
- Trabajo con directorios
- Gestión de cargas de archivos