file
(PHP 4, PHP 5)
file — Lê todo o arquivo para um array
Descrição
$filename
[, int $flags
[, resource $context
]] )Carrega todo um arquivo em um array.
Note:
Você pode utilizar file_get_contents() para ler o conteúdo de um arquivo como string.
Parâmetros
-
filename -
Caminho até o arquivo
TipVocê pode usar uma URL como um nome de arquivo nesta função se fopen wrappers estiver habilitado. Veja fopen() para mais detalhes em como especificar o nome do arquivo e Protocolos e wrappers suportados para uma lista de protocolos URL suportados.
-
flags -
O parâmetro opcional
flagspode ser uma ou mais das seguintes constantes:-
FILE_USE_INCLUDE_PATH - Procurar pelo arquivo no include_path.
-
FILE_IGNORE_NEW_LINES - Não acrescentar a quebra de linha no final de cada elemento do array
-
FILE_SKIP_EMPTY_LINES - Ignorar linhas vazias
-
FILE_TEXT -
O arquivo é retornado na codificação UTF-8. Você pode especificar
uma codificação diferente criando um contexto personalizado.
Esta constante não pode ser utilizada com
FILE_BINARY. Esta flag está disponível apenas a partir do PHP 6. -
FILE_BINARY -
O conteúdo é lido como binário. Esta é a opção padrão e
não pode ser utilizada com
FILE_TEXT. Esta flag está disponível apenas a partir do PHP 6.
-
-
context -
Um recurso de contexto criado com a função stream_context_create().
Note: O suporte ao contexto foi adicionado no PHP 5.0.0. Para uma descrição de contextos, veja Streams.
Valor Retornado
Retorna o arquivo em um array. Cada elemento do array corresponde a uma
linha no arquivo, ainda com a quebra de linha. Em caso de falha,
file() retorna FALSE
Note:
Cada linha no array incluirá a quebra de linha, a não ser que
FILE_IGNORE_NEW_LINESseja usado, então você ainda deve usar rtrim() se não desejar ter as quebras de linha presentes.
Note: Se PHP não está apropriadamente reconhecendo o final de linha quando lendo arquivos ou criando por um computador Macintosh, habilitando a opção auto_detect_line_endings em tempo de execução pode ajudar a resolver o problema.
Changelog
| Versão | Descrição |
|---|---|
| 6.0.0 |
Adicionado suporte às flags FILE_TEXT e
FILE_BINARY.
|
| 5.0.0 |
O parâmetro context foi adicionado
|
| 5.0.0 |
Até o PHP 5.0.0, o parâmetro flags suportava
apenas include_path e era
habilitado com 1
|
| 4.3.0 | file() tornou-se segura para binários |
Exemplos
Example #1 Exemplo de file()
<?php
// Lê um arquivo em um array. Nesse exemplo nós obteremos o código fonte de
// uma URL via HTTP
$lines = file ('http://www.example.com/');
// Percorre o array, mostrando o fonte HTML com numeração de linhas.
foreach ($lines as $line_num => $line) {
echo "Linha #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br>\n";
}
// Outro exemplo, onde obtemos a página web inteira como uma string. Veja também file_get_contents().
$html = implode ('', file ('http://www.example.com/'));
// Usando o parâmetro de flags opcionais disponíveis desde o PHP 5
$trimmed = file('somefile.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
?>
Notas
Quando usando SSL, o Microsoft IIS irá violar o protocolo fechando a conexão sem enviar uma notificação close_notify. O PHP acusará isso como sendo "SSL: Fatal Protocol Error" quando tentar ler os dados. Para prevenir isso, o valor de error_reporting deve ser reduzido para um nível que não inclui avisos. para o nível que não emita warnings. O PHP 4.3.7 e seguintes conseguem detectar servidores IIS defeituosos quando você abre um stream utilizando o wrapper https:// e suprimirá os avisos. Se você está usando fsockopen() para criar um socket ssl://, a responsabilidade de detectar e suprimir esse aviso passa para você.
Veja Também
- readfile() - Lê e exibe o conteúdo de um arquivo
- fopen() - Abre um arquivo ou URL
- fsockopen() - Abre um socket de conexão Internet ou de domínio Unix
- popen() - Abre um processo como ponteiro de arquivo
- file_get_contents() - Lê todo o conteúdo de um arquivo para uma string
- include - include
- stream_context_create() - Creates a stream context