PHP vfprintf() функция

Пример

Записать текст в текстовый файл с именем "test.txt":

<?php
$number = 9;
$str = "Beijing";
$file = fopen("test.txt","w");
echo vfprintf($file,"There are 쥕lion bicycles in %s.",array($number,$str));
?>

Выйденный код будет выглядеть так:

40

Следующий текст будет записан в файл "test.txt":

There are 9 million bicycles in Beijing.

Определение и использование

Функция vfprintf() записывает форматированную строку в указанный поток вывода (например, файл или база данных).

В отличие от fprintf(), параметры в vfprintf() находятся в массиве. Элементы массива вставляются в основную строку в месте знака %. Функция выполняется поэтапно. В месте первого % вставляется первый элемент массива, в месте второго % вставляется второй элемент массива и т.д.

Комментарий:Если символ % больше arg Если есть параметры, то вы должны использовать占位щики. Занятщики вставляются после знака % и состоят из числа и "\$". См. пример 2.

См. также функции:

Грамматика

vfprintf(stream,Формат,argarray)
Параметры Описание
stream Необходимо. Определяет, где写入/выводится строка.
Формат

Необходимо. Определяет строку и способ форматирования переменных в ней.

Возможные форматные значения:

  • %% - возвращает百分ый %
  • %b - двоичное число
  • %c - символ, соответствующий значению ASCII
  • %d - десятичное число с знаками士 (отрицательное, 0, положительное)
  • %e - использование маленького научного обозначения (например, 1.2e+2)
  • %E - использование большого научного обозначения (например, 1.2E+2)
  • 袍есятичное число без знака士 (больше или равно 0)
  • %f -浮 точное число (локально настроено)
  • %F -浮 точное число (не локально настроено)
  • %g - более короткое %e и %f
  • %G - более короткое %E и %f
  • %o - восьмеричное число
  • %s - строка
  • %x - шестнадцатеричное число (маленькая литера)
  • %X - шестнадцатеричное число (большая литера)

Дополнительные форматные значения. Необходимо разместить между % и буквой (например, %.2f):

  • + (在数字前面加上 + 或 - 来定义数字的正负性。默认情况下,только отрицательные числа имеют метку,положительные числа не имеют метки)
  • ’ (определяет, что использовать в качестве заполнителя, по умолчанию это пробел. Он должен использоваться вместе с указателем ширины. Например: %'x20s (использование "x" в качестве заполнителя))}
  • - (левое выравнивание значения переменной)
  • .[0-9] (определяет минимальную ширину значения переменной)
  • .[0-9] (определяет количество знаков после запятой или максимальную длину строки)

Комментарий:Если используется несколько значений формата, они должны быть в порядке, указанном выше.

argarray Обязателен. Масив параметров, которые будут вставлены Формат Символ % в строке.

Технические детали

Возвратное значение: Возвращает длину записианной строки.
PHP версия: 5+

Более примеров

Пример 1

Запись текста в файл:

<?php
$num1 = 123;
$num2 = 456;
$file = fopen("test.txt","w");
vfprintf($file,"%f%f",array($num1,$num2));
?>

Следующий текст будет записан в файл "test.txt":

123.000000456.000000

Пример 2

Использование占位符:

<?php
$number = 123;
$file = fopen("test.txt","w");
vfprintf($file,"С двумя десятичными знаками: %1$.2f
\nБез десятичных знаков: %1$u",array($number));
?>

Следующий текст будет записан в файл "test.txt":

С двумя десятичными знаками: 123.00
Без десятичных знаков: 123

Пример 3

Использование printf() для демонстрации всех возможных значений формата:

<?php
$num1 = 123456789;
$num2 = -123456789;
$char = 50; // ASCII 字符 50 是 2
// 注释:格式值 "%%" 返回百分号
printf("%%b = %%b <br>", $num1); // 二进制数
printf("%%c = %%c <br>", $char); // ASCII 字符
printf("%%d = %%d <br>", $num1); // 带符号的十进制数
printf("%%d = %%d <br>", $num2); // 带符号的十进制数
printf("%%e = %%e <br>", $num1); // 科学计数法(小写)
printf("%%E = %%E <br>", $num1); // 科学计数法(大写)
printf("%鑾u <br>", $num1); // Беззнаковое десятичное число (положительное)
printf("%鑾u <br>", $num2); // Беззнаковое десятичное число (отрицательное)
printf("%%f = %f <br>", $num1); // Число с плавающей запятой (зависит от локальных настроек)
printf("%%F = %F <br>", $num1); // Число с плавающей запятой (не зависит от локальных настроек)
printf("%%g = %g <br>", $num1); // Краткое обозначение %e и %f
printf("%%G = %G <br>", $num1); // Краткое обозначение %E и %f
printf("%%o = %o <br>", $num1); // Оktalnoye chislo
printf("%%s = %s <br>", $num1); // Строка
printf("%%x = %x <br>", $num1); // Шестнадцатеричное число (нижний регистр)
printf("%%X = %X <br>", $num1); // Шестнадцатеричное число (заглавные буквы)
printf("%%+d = %+d <br>", $num1); // Объяснение знака (положительный)
printf("%%+d = %+d <br>", $num2); // Объяснение знака (отрицательный)
?>

Запуск примера