file

(PHP 4, PHP 5, PHP 7, PHP 8)

fileTransfiere un fichero completo a un array

Descripción

file(string $filename, int $flags = 0, ?resource $context = null): array|false

Transfiere un fichero completo a un array.

Nota:

Se puede usar file_get_contents() para devolver el contenido de un fichero como una cadena.

Parámetros

filename

Ruta al fichero.

Sugerencia

Se puede emplear un URL como nombre de fichero con esta función si las envolturas de fopen han sido activadas. Véase fopen() para más información de cómo especificar el nombre de fichero. Véanse las Protocolos y Envolturas soportados; continen enlaces con información sobre las diferentes capacidades que tienen las envolturas, notas sobre su empleo, e información de cualquier variable predefinida que podría proporcionarse.

flags

El parámetro opcional flags puede ser una o más de las siguientes constantes:

FILE_USE_INCLUDE_PATH
Buscar el fichero en include_path.
FILE_IGNORE_NEW_LINES
Omitir nueva línea al final de cada elemento del array
FILE_SKIP_EMPTY_LINES
Saltar las líneas vacías
FILE_NO_DEFAULT_CONTEXT
No usar el contexto por defecto

context

Un resource de contextos de flujos.

Valores devueltos

Devuelve el fichero a un array. Cada elemento del array se corresponde con una línea del fichero, con la nueva línea aún adjunta. En caso de fallo, file() devuelve false.

Nota:

Cada línea del array resultante incuirá el final de línea, a menos que se use FILE_IGNORE_NEW_LINES.

Nota: Si sufre problemas con PHP no reconociendo los finales de línea cuando lee o crea ficheros en Macintosh, puede probar de activar la opción de configuración en tiempo de ejecución auto_detect_line_endings para intentar resolver el problema.

Errores/Excepciones

Desde PHP 8.3.0, lanza un ValueError si flags incluye cualquier valor inválido, como FILE_APPEND.

Emite un error de nivel E_WARNING si el fichero no existe.

Historial de cambios

Versión Descripción
8.3.0 Lanza un ValueError si flags incluye cualquier valor inválido.

Ejemplos

Ejemplo #1 file() example

<?php
// Obtiene un fichero en un array. En este ejemplo iremos a través de HTTP para obtener
// el código fuente HTML de una URL.
$lines = file('http://www.example.com/');

// Recorre nuestro array, muestra el código fuente HTML como tal; incluyendo también los números de línea.
foreach ($lines as $line_num => $line) {
echo
"Línea #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";
}

// Usando el parámetro opcional flags
$trimmed = file('somefile.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
?>

Notas

Advertencia

Cuando se usa SSL, Microsoft IIS violará el protocolo, cerrando la conexión sin mandar un indicador close_notify. PHP avisará de esto con este mensaje "SSL: Fatal Protocol Error", cuando llegue al final de los datos. Una solución a este problema es bajar el nivel de aviso de errores del sistema para que no incluya advertencias. PHP pueden detectar servidores IIS con este problema cuando se abre un flujo usando https:// y suprime la advertencia. Si usáis la función fsockopen() para crear un socket ssl://, tendréis que suprimir la advertencia explicitamente.

Ver también