Função vfprintf
A função vfprintf grava uma string, formatada de acordo com os especificadores, em um fluxo de arquivo. O primeiro parâmetro aceita um recurso de arquivo, o segundo - uma string de formato, o terceiro - um array de argumentos para substituição. Na string de formato são usados caracteres especiais (especificadores de formato), que começam com o sinal % e controlam a formatação da saída.
Sintaxe
vfprintf(resource $handle, string $format, array $args): int
Especificadores de formato
| Especificador | Descrição |
|---|---|
%s |
String |
%d |
Número inteiro com sinal (decimal) |
%u |
Número inteiro sem sinal (decimal) |
%f |
Número de ponto flutuante (dependente da localidade) |
%F |
Número de ponto flutuante (não dependente da localidade) |
%c |
Caractere por código ASCII |
%x |
Número inteiro em sistema hexadecimal (minúsculas) |
%X |
Número inteiro em sistema hexadecimal (maiúsculas) |
%o |
Número inteiro em sistema octal |
%b |
Número inteiro em sistema binário |
%e |
Notação científica (minúsculas) |
%E |
Notação científica (maiúsculas) |
%g |
Formato curto %e ou %f |
%G |
Formato curto %E ou %F |
%% |
Sinal de porcentagem |
Exemplo
Gravação de string formatada em arquivo:
<?php
$file = fopen('output.txt', 'w');
$values = [10, 20.5, 'test'];
vfprintf($file, "Number: %d, Float: %.2f, String: %s", $values);
fclose($file);
?>
Conteúdo do arquivo output.txt:
'Number: 10, Float: 20.50, String: test'
Exemplo
Uso de diferentes especificadores:
<?php
$res = fopen('php://output', 'w');
$data = [15, 12.3456, 'ABCDE'];
vfprintf($res, "Hex: %x, Scientific: %.2e, Padding: '%5s'", $data);
fclose($res);
?>
Resultado da saída:
'Hex: f, Scientific: 1.23e+1, Padding: \' ABCDE\''