Вы не зарегистрированы? Нажмите здесь для регистрации.
Забыли пароль? Запросите новый здесь.
|
Вы должны авторизироваться, чтобы добавить сообщение.
|
|
|
Последние активные темы форума |
|
sprintf
(PHP 3, PHP 4 , PHP 5) sprintf -- Возвращает отформатированную строку
Описаниеstring sprintf ( string format [, mixed args] ) Возвращает строку, созданную с использованием строки формата
format.
Строка формата состоит из директив:
обычных символов (за исключением %), которые
копируются в результирующую строку, и описатели
преобразований, каждый из которых заменяется на один из
параметров. Это относится также к fprintf(),
sprintf() и printf().
Каждый описатель прреобразований состоит из знака процента
(%), за которым следует один или более
дополнительных элементов (в том порядке, в котором они здесь
перечислены):
Необязательный описатель заполнения, который
определяет, какой символ будет использоваться для дополнения
результата до необходимой длины. Это может быть пробел или
0. По умолчанию используется пробел.
Альтернативный символ может быть указан с помощью '.
См. примеры ниже.
Необязательный описатель выравнивания,
определяющий выранивание влево или вправо. По умолчанию
выравнивается вправо, - используется для
выравнивания влево.
Необязательное число, описатель ширины,
определяющий минимальное число символов, которое будет содержать
результат этого преобразования.
Необязательный описатель точности,
определяющий, сколько десятичных разрядов отображать для чисел с
плавающей точкой. Имеет смысл только для числовых данных типа
float. (Для форматирования чисел удобно также
использовать функцию number_format().)
Описатель типа, определяющий, как трактовать
тип данных аргумента. Допустимые типы:
% - символ процента. Аргумент не
используется.
| b - аргумент трактуется как целое и выводится
в виде двоичного числа.
| c - аргумент трактуется как целое и выводится
в виде символа с соответствующим кодом ASCII.
| d - аргумент трактуется как целое и выводится
в виде десятичного числа со знаком.
| e - аргумент трактуется как float и выводится
в научной нотации (например 1.2e+2).
| u - аргумент трактуется как целое и выводится
в виде десятичного числа без знака.
| f - аргумент трактуется как float и выводится
в виде десятичного числа с плавающей точкой.
| o - аргумент трактуется как целое и выводится
в виде восьмеричного числа.
| s - аргумент трактуется как строка.
| x - аргумент трактуется как целое и выводится
в виде шестнадцатиричного числа (в нижнем регистре букв).
| X - аргумент трактуется как целое и выводится
в виде шестнадцатиричного числа (в верхнем регистре букв).
|
Начиная с PHP 4.0.6 в строке формата поддерживается нумерация и изменение
порядка параметров. Например:
Пример 1. Изменение порядка параметров
<?php
$format
=
"There are %d monkeys in the %s"
;
printf
(
$format
,
$num
,
$location
);
?>
|
|
Этот код выведет "There are 5 monkeys in the tree". Теперь
представьте, что строка формата содержится в отдельном файле, который
потом будет переведен на другой язык, и мы переписываем ее в таком
виде:
Пример 2. Изменение порядка параметров
<?php
$format
=
"The %s contains %d monkeys"
;
printf
(
$format
,
$num
,
$location
);
?>
|
|
Появляется проблема: порядок описателей преобразования не соответствует
порядку аргументов. Мы не хотим менять код, и нам нужно указать,
какому аргументу соответствует тот или иной описатель преобразования.
Пример 3. Изменение порядка параметров
<?php
$format
=
"The %2\$s contains %1\$d monkeys"
;
printf
(
$format
,
$num
,
$location
);
?>
|
|
Нумерация аргументов имеет еще одно применение: она позволят вывести
один и тот же аргумент несколько раз без передачи функции
дополнительных параметров.
Пример 4. Изменение порядка параметров
<?php
$format
=
"The %2\$s contains %1\$d monkeys.
That's a nice %2\$s full of %1\$d monkeys."
;
printf
(
$format
,
$num
,
$location
);
?>
|
|
См. также описание функций printf(),
sscanf(), fscanf(),
vsprintf() и
number_format().
Примеры
Пример 5. sprintf(): заполнение нулями
<?php
$isodate
=
sprintf
(
"%04d-%02d-%02d"
,
$year
,
$month
,
$day
);
?>
|
|
Пример 6. sprintf(): форматирование денежных величин
<?php
$money1
=
68.75
;
$money2
=
54.35
;
$money
=
$money1
+
$money2
;
// echo $money выведет "123.1";
$formatted
=
sprintf
(
"%01.2f"
,
$money
);
// echo $formatted выведет "123.10"
?>
|
|
Пример 7. sprintf(): научная нотация
<?php
$number
=
362525200
;
echo
sprintf
(
"%.3e"
,
$number
);
// выведет 3.63e+8
?>
|
|
|
· Гостей: 18
· Пользователей: 0
· Всего пользователей: 453
· Новый пользователь: ZDA
|
|