Функция printf() в PHP

Пример

Вывод форматированной строки:

<?php
$number = 9;
$str = "Пекин";
printf("В %s есть �лионов велосипедов." ,$str,$number);
?>

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

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

Функция printf() выводит форматированную строку.

arg1arg2arg++ параметр будет вставлен в символ процента (%) в основную строку. Функция выполняется поэтапно. В первом символе % вставьте arg1вторая %-символ, вставьте arg2и так далее.

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

Совет:Связанные функции: sprintf()、 vprintf()、 vsprintf()、 fprintf() и vfprintf()

Грамматика

printf(format,arg1,arg2,arg++)
Параметр Описание
format

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

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

  • %% - возвращает символ процента (%)
  • %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):

  • + (在数字前面加上 + 或 - 来定义数字的正负性。默认地,只有负数做标记,正数不做标记)
  • (规定使用什么作为填充,默认是空格。它必须与宽度指定器一起使用。)
  • - (левое выравнивание значения переменной)
  • .[0-9] (определяет минимальную ширину значения переменной)
  • .[0-9] (определяет количество знаков после запятой или максимальную длину строки)

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

arg1 Обязательно. Определяет вставку в format Первый % символ в строке.
arg2 Обязательно. Определяет вставку в format Второй % символ в строке.
arg++ Опционально. Определяет вставку в format Параметры на третьем, четвертом и т.д. % символов в строке.

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

Возвратное значение: Возвращает длину строки, которая была выведена.
Версия PHP: 4+

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

Пример 1

Использование формата %f:

<?php
$number = 123;
printf("%f",$number);
?>

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

Пример 2

Использование значков подстановки:

<?php
$number = 123;
printf("Два знака после запятой:%1\$.2f<br>Без знаков после запятой:%1\$u",$number);
?>

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

Пример 3

Демонстрация всех возможных форматов:

<?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); // Оctalное число
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); // Описание знакового индикатора (отрицательный)
?>

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

Пример 4

Демонстрация строковых констант:

<?php
$str1 = "Hello";
$str2 = "Hello world!";
printf("[%s]<br>", $str1);
printf("[%8s]<br>", $str1);
printf("[%-8s]<br>", $str1);
printf("[%08s]<br>", $str1);
printf("[%'*8s]<br>", $str1);
printf("[%8.8s]<br>", $str2);
?>

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