# file

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

file — Transfiere un fichero completo a un array

### Descripción

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

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
`context`

  Un recurso de contexto válido creado con la función stream_context_create().

  > Nota: Soporte para context fue añadido en PHP 5.0.0. Para una descripción de `contexts`, refiérase a 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

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

### Ejemplos

Ejemplo #1 Ejemplo de file()

`<?php
// Escribir un fichero en un array. En este ejemplo iremos a través de HTTP para
// obtener el código fuente HTML de un URL.
$líneas = file('http://www.example.com/');
// Recorrer nuestro array, mostrar el código fuente HTML como tal y mostrar tambíen los números de línea.
foreach ($líneas as $num_línea => $línea) {
echo "Línea #<b>{$num_línea}</b> : " . htmlspecialchars($línea) . "<br />\n";
}
// Otro ejemplo: vamos a escribir una página web en una cadena. Véase también file_get_contents().
$html = implode('', file('http://www.example.com/'));
// Utilizar el parámetro opcional flags a partir de PHP 5
$recortes = file('fichero.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

- readfile() - Realizar la salida de un fichero
- fopen() - Abre un fichero o un URL
- fsockopen() - Abre una conexión vía sockets a Internet o a un dominio Unix
- popen() - Abre un proceso de un puntero a un fichero
- file_get_contents() - Transmite un fichero completo a una cadena
- include - include
- stream_context_create() - Crear un contexto de flujo