0Pricing
PHP Academy · Lección

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 llamada
  • fopen() + fwrite() — escritura basada en streams
  • Use la bandera FILE_APPEND para 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 collected

Copiar 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_APPEND para añadir contenido
  • fopen('a', ...) + fwrite() para escritura mediante streams
  • fputcsv() 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

  1. Lectura de archivos con PHP
  2. Escritura y adición en archivos
  3. Trabajo con directorios
  4. Gestión de cargas de archivos
← Volver a PHP Academy