Lectura de archivos con PHP
Lea el contenido de archivos con file_get_contents y fopen/fread.
Lectura de archivos con PHP es una lección gratuita de PHP Academy en CoddyKit. Esta es la lección 1 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.
PHP y el sistema de archivos
PHP puede leer, escribir y gestionar archivos en el sistema de archivos del servidor. Estas son las funciones principales para leer:
file_get_contents()— lee el archivo completo como una cadenafopen()+fread()— lectura basada en streamsfile()— lee el archivo en un array de líneas
file_get_contents()
La forma más sencilla de leer todo el contenido de un archivo en una cadena:
<?php
$content = file_get_contents('/var/www/html/data.txt');
if ($content === false) {
echo 'Could not read file';
} else {
echo $content;
echo strlen($content) . ' bytes';
}Comprobar si existe un archivo
Compruebe siempre que el archivo exista antes de leerlo para evitar errores:
<?php
$path = '/var/data/config.json';
if (!file_exists($path)) {
die('Config file not found');
}
if (!is_readable($path)) {
die('No permission to read file');
}
$json = file_get_contents($path);
$config = json_decode($json, true);file() — Leer en un array
file() lee un archivo y devuelve cada línea como un elemento del array:
<?php
$lines = file('data.csv', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
foreach ($lines as $lineNum => $line) {
echo ($lineNum + 1) . ': ' . $line . PHP_EOL;
}fopen, fread, fclose
Lectura de streams de bajo nivel para archivos grandes: procéselos sin cargarlo todo en memoria:
<?php
$handle = fopen('large_file.txt', 'r');
if ($handle === false) die('Cannot open file');
// Read 1KB at a time
while (!feof($handle)) {
$chunk = fread($handle, 1024);
echo $chunk;
}
fclose($handle);fgets para leer línea por línea
fgets() lee una línea cada vez, lo que permite ahorrar memoria en archivos grandes:
<?php
$handle = fopen('server.log', 'r');
while (($line = fgets($handle)) !== false) {
if (str_contains($line, 'ERROR')) {
echo 'Found error: ' . $line;
}
}
fclose($handle);Leer archivos remotos
file_get_contents() también puede leer desde URL HTTP si allow_url_fopen está habilitado:
<?php
$json = file_get_contents('https://api.example.com/data.json');
// Prefer cURL for more control and error handling
$ch = curl_init('https://api.example.com/data.json');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);SplFileObject
SplFileObject proporciona una interfaz orientada a objetos para las operaciones con archivos:
<?php
$file = new SplFileObject('data.txt', 'r');
foreach ($file as $lineNum => $line) {
echo $lineNum . ': ' . $line;
}
// Read specific line:
$file->seek(5);
echo $file->current(); // line 6 (0-indexed)Leer archivos JSON
Un patrón habitual: leer y decodificar un archivo de configuración JSON:
<?php
function loadJsonConfig(string $path): array {
if (!file_exists($path)) {
throw new RuntimeException("Config not found: $path");
}
$json = file_get_contents($path);
$data = json_decode($json, true);
if (json_last_error() !== JSON_ERROR_NONE) {
throw new RuntimeException('Invalid JSON: ' . json_last_error_msg());
}
return $data;
}
$cfg = loadJsonConfig('/app/config.json');Información de archivos
Obtenga los metadatos de un archivo sin leer su contenido:
<?php
$path = '/var/www/html/image.jpg';
echo filesize($path); // bytes
echo filetype($path); // 'file'
echo filemtime($path); // last modified timestamp
echo date('Y-m-d', filemtime($path));
$info = pathinfo($path);
echo $info['dirname']; // /var/www/html
echo $info['basename']; // image.jpg
echo $info['extension']; // jpgBloqueo de archivos
Use el bloqueo de archivos para evitar conflictos de escritura simultáneos:
<?php
$handle = fopen('counter.txt', 'r+');
if (flock($handle, LOCK_EX)) { // exclusive lock
$count = (int) fread($handle, 20);
$count++;
fseek($handle, 0);
fwrite($handle, $count);
fflush($handle);
flock($handle, LOCK_UN); // release
}
fclose($handle);Comprobación rápida
¿Qué función de PHP lee un archivo completo en una cadena en una sola llamada?
Resumen: Lectura de archivos
Conceptos esenciales para leer archivos:
file_get_contents()— archivo completo como cadenafile()— archivo como array de líneasfopen/fread/fclose— stream para archivos grandesfgets()— lectura mediante streams línea por línea- Compruebe siempre primero file_exists e is_readable
- Use flock para proteger el acceso simultáneo
Preguntas frecuentes
¿La lección «Lectura de archivos con PHP» es gratis?
Sí — el texto completo de «Lectura de archivos con PHP» 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 «Lectura de archivos con PHP»?
Lea el contenido de archivos con file_get_contents y fopen/fread. 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 1 de 4.
¿Cuánto tiempo toma la lección «Lectura de archivos con PHP»?
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