array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'pt_BR', ), 'this' => array ( 0 => 'function.file-get-contents.php', 1 => 'file_get_contents', ), 'up' => array ( 0 => 'ref.filesystem.php', 1 => 'Funções do sistema de arquivos', ), 'prev' => array ( 0 => 'function.file-exists.php', 1 => 'file_exists', ), 'next' => array ( 0 => 'function.file-put-contents.php', 1 => 'file_put_contents', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'pt_BR', 'path' => 'reference/filesystem/functions/file-get-contents.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
file_get_contents — Lê todo o conteúdo de um arquivo para uma string
$filename
,$use_include_path
= false
,$context
= null
,$offset
= 0,$length
= null
Esta função é semelhante à file(), exceto que
file_get_contents() retorna o arquivo em uma
string, começando a partir de offset
até length
bytes. Em caso de falha,
file_get_contents() retornará false
.
file_get_contents() é o método preferível para ler o conteúdo de um arquivo em uma string. Ela usa técnicas de mapeamento de memória suportadas pelo sistema operacional para melhorar o desempenho.
Nota:
Se for aberta uma URI com caracteres especiais, como espaços, é necessário codificar a URI com urlencode().
filename
Nome do arquivo para ler.
use_include_path
Nota:
A constante
FILE_USE_INCLUDE_PATH
pode ser usada para acionar a busca no include path. Isto não é possível se a tipagem estrita estiver habilitada, já queFILE_USE_INCLUDE_PATH
é um int. Em vez disso, usetrue
.
context
Um recurso de contexto válido, criado com
stream_context_create(). Se você não precisa usar um
contexto personalizado, você pode ignorar este parâmetro passando null
.
offset
O ponto onde a leitura deve começar no fluxo original. Offsets negativos contam a partir do final do fluxo.
offset
não é suportado em arquivos remotos.
Tentar fazer busca em arquivos não locais pode funcionar com offsets
pequenos, mas isso é imprevisível pois só funciona no fluxo com buffer.
length
Comprimento máximo dos dados lidos. O padrão é ler até que o fim do arquivo seja alcançado. Note que este parâmetro é aplicado para o fluxo processado pelos filtros.
A função retorna os dados lidos ou false
em caso de falha.
Esta função pode
retornar o valor booleano false
, mas também pode retornar um valor não booleano que pode ser
avaliado como false
. Leia a seção sobre Booleanos para mais
informações. Use o operador
=== para testar o valor retornado por esta
função.
Um erro de nível E_WARNING
é gerado se filename
não puder ser encontrado,
length
é menor que zero, ou se a busca no fluxo pelo offset
especificado falhar.
Quando file_get_contents() é chamada em um diretório, um
erro nível E_WARNING
é gerado no Windows, e a partir
do PHP 7.4 em outros sistemas operacionais também.
Versão | Descrição |
---|---|
8.0.0 |
length agora é anulável.
|
7.1.0 |
Suporte para offset s negativos foi adicionado.
|
Exemplo #1 Obtém e exibe o código-fonte da página inicial de um website
<?php
$homepage = file_get_contents('http://www.example.com/');
echo $homepage;
?>
Exemplo #2 Buscando no include_path
<?php
// Se strict types estiver ativado com declare(strict_types=1);
$file = file_get_contents('./people.txt', true);
// Se não
$file = file_get_contents('./people.txt', FILE_USE_INCLUDE_PATH);
?>
Exemplo #3 Lendo uma sessão de um arquivo
<?php
// Le 14 letras começando da letra 21
$section = file_get_contents('./people.txt', FALSE, NULL, 20, 14);
var_dump($section);
?>
O exemplo acima produzirá algo semelhante a:
string(14) "lle Bjori Ro"
Exemplo #4 Usando contextos de fluxo
<?php
// Criam um fluxo
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Accept-language: en\r\n" .
"Cookie: foo=bar\r\n"
)
);
$context = stream_context_create($opts);
// Abre o arquivo utilizando os headers HTTP craidos acima
$file = file_get_contents('http://www.example.com/', false, $context);
?>
Nota: Esta função é compatível com dados binários.
Uma URL pode ser usada como um nome de arquivo com esta função se os wrappers fopen estiverem habilitados. Consulte a função fopen() para mais detalhes sobre como especificar o nome do arquivo. Consulte os Protocolos e Wrappers suportados para obter links para informações sobre as capacidades de cada wrapper, notas de uso e informações sobre quaisquer variáveis predefinidas que eles possam fornecer.
Ao usar SSL, o Microsoft IIS
violará o protocolo fechando a conexão sem enviar uma notificação
close_notify
. O PHP reportará isso como "SSL: Fatal
Protocol Error" quando chegar ao final dos dados. Para contornar isso, o
valor de error_reporting deve ser
reduzido a um nível que não inclua avisos.
O PHP pode detectar servidores IIS defeituosos quando o stream
é aberto usando o wrapper https://
e suprimirá o aviso.
Ao usar fsockopen() para criar um soquete
ssl://
, o desenvolvedor é responsável por detectar
e suprimir este aviso.