fprintf
(PHP 5, PHP 7)
fprintf — Записывает отформатированную строку в поток
Описание
Записывает строку, созданную с использованием строки формата
format, в поток, дескриптор которого передается
в параметре stream.
Список параметров
-
stream -
Указатель (resource) на файл, обычно создаваемый с помощью функции fopen().
-
format -
Строка формата состоит из нуля или более директив: обычные символы (за исключением
%), которые просто выводятся без изменения и спецификаторы преобразования, каждый из которых требует передачи своего параметра.Спецификаторы преобразования имеют следующий формат:
%[argnum$][flags][width][.precision]specifier.Argnum
Целое число, за которым следует знак доллара
$, чтобы указать, какой числовой аргумент обрабатывать при преобразовании.Флаги Флаг Описание -Выравнивание по левому краю в пределах заданной ширины поля; По умолчанию выравнивание происходит по правому краю. +Печатает плюс +у не отрицательных чисел; По умолчанию знак печатается только у отрицательных чисел.(space)Дополняет результат пробелами. Это поведение по умолчанию. 0Дополняет числа нулями (только слева). Со спецификатором sтакже может дополнять нулями справа.'(char)Дополняет результат символом (char). Ширина
Целое число, определяющее минимальное количество символов, которое будет напечатано.
Точность
Точка
.с последующим целым числом, работающая по разному для разных спецификаторов:-
Для спецификаторов
e,E,fиF: задает количество цифр после десятичной запятой (по умолчанию 6). -
Для спецификаторов
gиG: задает максимальное значение печатаемых значащих цифр. -
Для спецификатора
s: задает ограничение максимального количества символов в строке, которые будут выведены.
Замечание: Если указана точка без последующего значения точности, то точность будет считаться за 0.
Замечание: Попытка использовать спецификатор позиции со значением больше, чем
PHP_INT_MAXприведет к выводу предупреждения.Спецификаторы Спецификатор Описание %Символ процента. Аргументы не требуются. bАргумент рассматривается как целое число и печатается в бинарном представлении. cАргумент рассматривается как целое число и печатается как символ из таблицы ASCII с соответствующим кодом. dАргумент рассматривается как целое число и печатается как целое число со знаком. eАргумент считается за число в научной нотации (т.е. 1.2e+2). Начиная с PHP 5.2.1, спецификатор точности задает количество цифр после десятичной запятой. В более ранних версиях он задавал общее количество значащих цифр (т.е. после запятой выводилось на 1 символ меньше). EАналогично спецификатору e, но использует заглавные символы (т.е. 1.2E+2).fАргумент считается за число с плавающей точкой (с учетом локали). FАргумент считается за число с плавающей точкой (без учета локали). Доступно с PHP 5.0.3. gОбщий формат.
Пусть P равно точности, если она не равно нулю, 6 - если точность не задана и 1, если точность задана как 0. Тогда, если преобразование со стилем "E" будет иметь показатель степени X:
Если P > X ≥ −4, преобразование будет в стиле "f" и точность будет P − (X + 1). В обратном случае, преобразование будет в стиле "e" и точность будет P − 1.
GАналогично спецификатору g, но используетEиf.hАналогично спецификатору g, но используетF. Доступен с PHP 8.0.0.HАналогично спецификатору g, но используетEиF. Доступен с PHP 8.0.0.oАргумент рассматривается как целое число и печатается в восмеричном представлении. sАргумент рассматривается и печатается как строка. uАргумент рассматривается как целое число и печатается как беззнаковое целое число. xАргумент рассматривается как целое число и печатается в шестнадцатеричном представлении (буквы будут в нижнем регистре). XАргумент рассматривается как целое число и печатается в шестнадцатеричном представлении (буквы будут в верхнем регистре). ВниманиеСпецификатор
cигнорирует значения ширины и дополненияВниманиеПопытка использовать спецификаторы с указанием ширины для строки в многобайтовой кодировке может привести к неожиданным результатам.
Переменные будут приведены к подходящему для спецификатора типу:
Обработка типов Тип Спецификатор stringsintegerd,u,c,o,x,X,bdoubleg,G,e,E,f,F -
Для спецификаторов
-
values -
Возвращаемые значения
Возвращает длину записанной строки.
Примеры
Пример #1 fprintf(): заполнение нулями
<?php
if (!($fp = fopen('date.txt', 'w'))) {
return;
}
fprintf($fp, "%04d-%02d-%02d", $year, $month, $day);
// запишет форматированную ISO-дату в файл date.txt
?>
Пример #2 fprintf(): форматирование денежных величин
<?php
if (!($fp = fopen('currency.txt', 'w'))) {
return;
}
$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
// echo $money выведет "123.1";
$len = fprintf($fp, '%01.2f', $money);
// строка "123.10" записана в файл currency.txt
echo "записано $len байт в файл currency.txt";
// используйте возвращаемое из fprintf значение для определения количества записанных байт
?>
Смотрите также
- printf() - Выводит отформатированную строку
- sprintf() - Возвращает отформатированную строку
- vprintf() - Выводит отформатированную строку
- vsprintf() - Возвращает отформатированную строку
- vfprintf() - Записывает отформатированную строку в поток
- sscanf() - Разбирает строку в соответствии с заданным форматом
- fscanf() - Обрабатывает данные из файла в соответствии с форматом
- number_format() - Форматирует число с разделением групп
- date() - Форматирует вывод системной даты/времени