Описание функции sprintf
sprintf
(PHP 3, PHP 4)
sprintf - возвращает отформатированную строку.
Описание
string sprintf (string format [, mixed args])
Возвращает строку, созданную в соответствии со строкой форматирования format .
Строка форматирования состоит из 0 или более директив: обычных символов (исключая % ), которые копируются прямо в результат, и спецификаций конвертации , каждая из которых приводит к извлечению её собственного параметра. Это применяется к sprintf() и к printf() .
Каждая спецификация конвертации состоит из знака процентов ( % ) с последующим одним или более из следующих элементов, в данном порядке:
-
Необязательный padding-спецификатор , который сообщает, какой символ будет использоваться для заполнения результатов до размера строки. Это может быть символ space/пробел или 0 (символ нуль). По умолчанию заполняется пробелами. Альтернативный заполнитель может быть специфицирован с помощью префикса - одинарной кавычки ( ' ). См. примеры далее. -
Необязательный alignment-спецификатор , который сообщает, должен ли результат выравниваться влево или вправо (left-justified или right-justified). По умолчанию right-justified; символ - здесь делает left-justified. -
Необязательное число, width-спецификатор , который сообщает, сколько символов (минимум) должна дать эта конвертация. -
Необязательный precision-спецификатор , который сообщает, сколько десятеричных цифр должно выводиться для чисел с плавающей точкой. Эта опция не оказывает действия на другие типы, кроме float . (Для форматирования чисел используется также функция number_format() .) -
type-спецификатор , который сообщает, как какой тип должны рассматриваться данные аргумента. Возможные типы:% - литеральный символ процентов. Аргументы не требуются. b - аргумент рассматривается как integer и представлен как двоичное число. c - аргумент рассматривается как integer и представлен как символ с этим ASCII-значением. d - аргумент рассматривается как integer и представлен как (знаковое) десятеричное число. u - аргумент рассматривается как integer и представлен как беззнаковое десятеричное число. f - аргумент рассматривается как float и представлен как число с плавающей точкой. o - аргумент рассматривается как integer и представлен как восьмеричное число. s - аргумент рассматривается и представляется как строка/string. x - аргумент рассматривается как integer и представлен как шестнадцатеричное число (с буквами в нижнем регистре). X - аргумент рассматривается как integer и представлен как шестнадцатеричное число (с буквами в верхнем регистре).
Как и в PHP версии 4.0.6, строка форматирования поддерживает нумерацию/обмен аргументов (numbering/swapping). Вот пример:
Пример 1. Обмен/swapping аргументов
|
Это выведет "There are 5 monkeys in the tree". Но представьте, что мы создаём строку форматирования в отдельном файле, что является обычным, поскольку мы хоти интернационализировать её, и мы переписываем:
Пример 2. Обмен аргументов
|
Вот мы и получили проблему. Порядок заглушек в строке формата не совпадает с порядком аргументов в коде. Мы хотели бы оставить код без изменений и просто указать в строке формата, к каким аргументам относятся заглушки строки формата. Теперь запишем строку формата так:
Пример 3. Обмен аргументов
|
Теперь появилось преимущество: вы можете повторять заглушки без добавления аргументов в коде. Например:
Пример 4. Обмен аргументов
|
См. также printf() , sscanf() , fscanf() и number_format() .
Примеры
Пример 5. sprintf(): целые числа с заполнением нулями
|