Функция vfprintf
Функция vfprintf
записывает строку, отформатированную согласно спецификаторам, в файловый поток. Первым параметром принимает файловый ресурс, вторым - строку формата, третьим - массив аргументов для подстановки. В строке формата используются специальные символы (форматные спецификаторы), которые начинаются со знака %
и управляют форматированием вывода.
Синтаксис
vfprintf(resource $handle, string $format, array $args): int
Форматные спецификаторы
Спецификатор | Описание |
---|---|
%s |
Строка |
%d |
Целое число со знаком (десятичное) |
%u |
Целое число без знака (десятичное) |
%f |
Число с плавающей точкой (локаль-зависимое) |
%F |
Число с плавающей точкой (не локаль-зависимое) |
%c |
Символ по ASCII-коду |
%x |
Целое число в шестнадцатеричной системе (нижний регистр) |
%X |
Целое число в шестнадцатеричной системе (верхний регистр) |
%o |
Целое число в восьмеричной системе |
%b |
Целое число в двоичной системе |
%e |
Научная нотация (нижний регистр) |
%E |
Научная нотация (верхний регистр) |
%g |
Короткая запись %e или %f |
%G |
Короткая запись %E или %F |
%% |
Знак процента |
Пример
Запись форматированной строки в файл:
<?php
$file = fopen('output.txt', 'w');
$values = [10, 20.5, 'test'];
vfprintf($file, "Number: %d, Float: %.2f, String: %s", $values);
fclose($file);
?>
Содержимое файла output.txt:
'Number: 10, Float: 20.50, String: test'
Пример
Использование разных спецификаторов:
<?php
$res = fopen('php://output', 'w');
$data = [15, 12.3456, 'ABCDE'];
vfprintf($res, "Hex: %x, Scientific: %.2e, Padding: '%5s'", $data);
fclose($res);
?>
Результат вывода:
'Hex: f, Scientific: 1.23e+1, Padding: \' ABCDE\''