(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)
fscanf — Interpreta a leitura de um arquivo de acordo com um formato
A função fscanf() é semelhante à sscanf(), mas usa como entrada um arquivo associado com o fluxo stream
e interpreta a entrada de acordo com o especificado em format
.
Qualquer espaço em branco na string do formato corresponde a quaisquer espaços em branco no fluxo de entrada. Isto significa que até mesmo uma tabulação (\t
) na string do formato pode corresponder a um único caractere de espaço no fluxo de entrada.
Cada chamada a fscanf() lê uma linha do arquivo.
stream
Um resource de ponteiro do sistema de arquivos que normalmente é criado usando fopen().
format
O formato interpretado para string
, que é descrito na documentação para sprintf() com as seguintes diferenças:
F
, g
, G
e b
não são suportados. D
significa número decimal. i
significa inteiro com detecção de base. n
representa o número de caracteres processados até o momento. s
pára de ler em qualquer caractere de espaço em branco. *
em vez de argnum$
suprime a atribuição desta especificação de conversão. vars
Os valores opcionais atribuídos.
Se somente dois parâmetros forem passados a esta função, os valores interpretados serão retornados como um array. Do contrário, se parâmetros opcionais forem passados, a função retornará o número de valores atribuídos. Os parâmetros opcionais devem ser passados por referência.
Se houver mais substrings esperadas no parâmetro format
do que estiverem disponíveis na string
, null
será retornado. Para outros erros, false
será retornado.
Exemplo #1 Exemplo de fscanf()
<?php
$handle = fopen("users.txt", "r");
while ($userinfo = fscanf($handle, "%s\t%s\t%s\n")) {
list ($name, $profession, $countrycode) = $userinfo;
//... faz algo com os valores
}
fclose($handle);
?>
Exemplo #2 Conteúdo de users.txt
javier argonaut pe hiroshi sculptor jp robert slacker us luigi florist it