PHP proporciona varias funciones para trabajar con archivos. La función básica para abrir
un archivo es fopen()
, que requiere dos parámetros principales: la ruta del
archivo y el modo de apertura.
Modo | Descripción | Crea archivo | Sobrescribe |
---|---|---|---|
r |
Solo lectura | No | No |
w |
Solo escritura | Sí | Sí |
a |
Añadir al final | Sí | No |
r+ |
Lectura y escritura | No | No |
<?php
// Abrir archivo en modo lectura
$archivo = fopen('datos.txt', 'r');
// Verificar si se abrió correctamente
if ($archivo) {
// Leer línea por línea
while (!feof($archivo)) {
$linea = fgets($archivo);
echo $linea . "<br>";
}
// Cerrar el archivo
fclose($archivo);
} else {
echo "Error al abrir el archivo";
}
?>
PHP ofrece varias funciones para escribir en archivos. Las más comunes son fwrite()
y file_put_contents()
.
<?php
// Método 1: Usando fwrite()
$archivo = fopen('nuevo.txt', 'w');
$texto = "Este es un texto de ejemplo.\n";
fwrite($archivo, $texto);
fclose($archivo);
// Método 2: Usando file_put_contents()
$contenido = "Este es otro texto de ejemplo.";
file_put_contents('otro.txt', $contenido);
// Añadir contenido al final del archivo
file_put_contents('otro.txt', "\nNueva línea", FILE_APPEND);
?>
Siempre verifica los permisos de escritura y asegúrate de cerrar los archivos después de usarlos para liberar recursos del sistema.
Los archivos CSV (Valores Separados por Comas) son muy comunes para manejar datos tabulares. PHP tiene funciones específicas para trabajar con este formato.
<?php
// Crear un archivo CSV
$archivo = fopen('usuarios.csv', 'w');
// Escribir encabezados
$encabezados = ['Nombre', 'Email', 'Edad'];
fputcsv($archivo, $encabezados);
// Escribir datos
$datos = [
['Juan', 'juan@email.com', '25'],
['María', 'maria@email.com', '30']
];
foreach ($datos as $fila) {
fputcsv($archivo, $fila);
}
fclose($archivo);
// Leer archivo CSV
$archivo = fopen('usuarios.csv', 'r');
while ($fila = fgetcsv($archivo)) {
print_r($fila);
echo "<br>";
}
fclose($archivo);
?>
PHP también proporciona funciones para trabajar con directorios y obtener información sobre archivos.
<?php
// Listar archivos en un directorio
$directorio = './archivos';
if (is_dir($directorio)) {
$archivos = scandir($directorio);
foreach ($archivos as $archivo) {
if ($archivo != '.' && $archivo != '..') {
$ruta_completa = $directorio . '/' . $archivo;
echo "Archivo: " . $archivo . "<br>";
echo "Tamaño: " . filesize($ruta_completa) . " bytes<br>";
echo "Última modificación: " . date("Y-m-d H:i:s", filemtime($ruta_completa)) . "<br><br>";
}
}
}
?>
Crea un sistema de registro de logs que:
Utiliza date()
para el timestamp, filesize()
para verificar el tamaño
y rename()
para rotar los archivos.