(PHP 4, PHP 5)
sprintf — Возвращает отформатированную строку
Возвращает строку, созданную с использованием строки формата
format
.
format
Строка формата состоит из нуля и более директив: обычных символов (за исключением %), которые копируются напрямую в результирующую строку, и описателей преобразований, каждый из которых заменяется на один из параметров. Это относится как к sprintf(), так и к printf().
Каждый описатель преобразований состоит из знака процента (%), за которым следует один или более дополнительных элементов (в том порядке, в котором они здесь перечислены):
Описатель типа, определяющий, как трактовать тип данных аргумента. Допустимые типы:
В строке формата поддерживается нумерация и изменение порядка параметров. Например:
Пример #1 Изменение порядка параметров
<?php
$num = 5;
$location = 'дереве';
$format = '%d обезьян сидят на %s';
printf($format, $num, $location);
?>
Пример #2 Изменение порядка параметров
<?php
$format = 'На %s сидят %d обезьян';
printf($format, $num, $location);
?>
Пример #3 Изменение порядка параметров
<?php
$format = 'На %2$s сидят %1$d обезьян';
printf($format, $num, $location);
?>
Пример #4 Изменение порядка параметров
<?php
$format = 'На %2$s сидят %1$d обезьян.
Как здорово, когда на %2$s сидят %1$d обезьян.';
printf($format, $num, $location);
?>
Пример #5 Использование описателя позиции и совместо с другими описателями
<?php
$format= 'На %2$s сидят %1$04d обезьян';
printf($format, $num, $location);
?>
Результат выполнения данного примера:
На дереве сидят 0005 обезьян
args
...
Возвращает строку, отформатированную в соответствии со строкой
format
.
Версия | Описание |
---|---|
4.0.6 | Добавлена поддержка нумерации/изменения порядка аргументов |
Пример #6 sprintf(): заполнение нулями
<?php
$n = 43951789;
$u = -43951789;
$c = 65; // ASCII 65 is 'A'
// заметьте, двойной %% выводится как одинарный '%'
printf("%%b = '%b'\n", $n); // двоичное представление
printf("%%c = '%c'\n", $c); // выводит символ ascii, аналогично функции chr()
printf("%%d = '%d'\n", $n); // обычное целое число
printf("%%e = '%e'\n", $n); // научная нотация
printf("%%u = '%u'\n", $n); // беззнаковое целое представление положительного числа
printf("%%u = '%u'\n", $u); // беззнаковое целое представление отрицательного числа
printf("%%f = '%f'\n", $n); // представление числа с плавающей точкой
printf("%%o = '%o'\n", $n); // восьмеричное представление
printf("%%s = '%s'\n", $n); // строка
printf("%%x = '%x'\n", $n); // шестнадцатеричное представление (нижний регистр)
printf("%%X = '%X'\n", $n); // шестнадцатеричное представление (верхний регистр)
printf("%%+d = '%+d'\n", $n); // описатель знака с положительным целым числом
printf("%%+d = '%+d'\n", $u); // описатель знака с отрицательным целым числом
?>
Результат выполнения данного примера:
%b = '10100111101010011010101101' %c = 'A' %d = '43951789' %e = '4.39518e+7' %u = '43951789' %u = '4251015507' %f = '43951789.000000' %o = '247523255' %s = '43951789' %x = '29ea6ad' %X = '29EA6AD' %+d = '+43951789' %+d = '-43951789'
Пример #7 printf(): описатели строк
<?php
$s = 'monkey';
$t = 'many monkeys';
printf("[%s]\n", $s); // обычный вывод строки
printf("[%10s]\n", $s); // выравнивание вправо с пробелами
printf("[%-10s]\n", $s); // выравнивание влево с пробелами
printf("[%010s]\n", $s); // дополнение нулями также работает со строками
printf("[%'#10s]\n", $s); // использование собственного дополняющего символа '#'
printf("[%10.10s]\n", $t); // выравнивание влево с обрезкой в 10 символов
?>
Результат выполнения данного примера:
[monkey] [ monkey] [monkey ] [0000monkey] [####monkey] [many monke]
Пример #8 sprintf(): целые числа, дополненные нулями
<?php
$isodate = sprintf("%04d-%02d-%02d", $year, $month, $day);
?>
Пример #9 sprintf(): форматирование денежных величин
<?php
$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
// echo $money выведет "123.1";
$formatted = sprintf("%01.2f", $money);
// echo $formatted выведет "123.10"
?>
Пример #10 sprintf(): научная нотация
<?php
$number = 362525200;
echo sprintf("%.3e", $number); // выведет 3.625e+8
?>