uznay-chto-hochesh.narod.ru

-сайт для интересующихся людей

Учебник - справочник по PHP.

Здесь Вы найдете что хотели

Меню сайта
Главная
Введение
Справочник языка
Возможности РНР
Функции (справочник)
Расширение РНР 4.0
F.A.Q. частые вопросы
Приложения
Алфавитный указатель
Друзья сайта
сделай сайт сам! пособие по html
изучение html и web-дизайна для новичков
Бесплатная отправка смс на все операторы
Реклама
 
Назад Вперёд

sprintf

(PHP 3, PHP 4)

sprintf - возвращает отформатированную строку.

Описание

string sprintf (string format [, mixed args])

Возвращает строку, созданную в соответствии со строкой форматирования format.

Строка форматирования состоит из 0 или более директив: обычных символов (исключая %), которые копируются прямо в результат, и спецификаций конвертации, каждая из которых приводит к извлечению её собственного параметра. Это применяется к sprintf() и к printf().

Каждая спецификация конвертации состоит из знака процентов (%) с последующим одним или более из следующих элементов, в данном порядке:

  1. Необязательный padding-спецификатор, который сообщает, какой символ будет использоваться для заполнения результатов до размера строки. Это может быть символ space/пробел или 0 (символ нуль). По умолчанию заполняется пробелами. Альтернативный заполнитель может быть специфицирован с помощью префикса - одинарной кавычки ('). См. примеры далее.

  2. Необязательный alignment-спецификатор, который сообщает, должен ли результат выравниваться влево или вправо (left-justified или right-justified). По умолчанию right-justified; символ - здесь делает left-justified.

  3. Необязательное число, width-спецификатор, который сообщает, сколько символов (минимум) должна дать эта конвертация.

  4. Необязательный precision-спецификатор, который сообщает, сколько десятеричных цифр должно выводиться для чисел с плавающей точкой. Эта опция не оказывает действия на другие типы, кроме float. (Для форматирования чисел используется также функция number_format().)

  5. 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 аргументов
$format = "There are %d monkeys in the %s";
printf($format,$num,$location);

Это выведет "There are 5 monkeys in the tree". Но представьте, что мы создаём строку форматирования в отдельном файле, что является обычным, поскольку мы хоти интернационализировать её, и мы переписываем:

Пример 2. Обмен аргументов
$format = "The %s contains %d monkeys";
printf($format,$num,$location);

Вот мы и получили проблему. Порядок заглушек в строке формата не совпадает с порядком аргументов в коде. Мы хотели бы оставить код без изменений и просто указать в строке формата, к каким аргументам относятся заглушки строки формата. Теперь запишем строку формата так:

Пример 3. Обмен аргументов
$format = "The %2\$s contains %1\$d monkeys";
printf($format,$num,$location);

Теперь появилось преимущество: вы можете повторять заглушки без добавления аргументов в коде. Например:

Пример 4. Обмен аргументов
$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() и number_format().

Примеры

Пример 5. sprintf(): целые числа с заполнением нулями
$isodate = sprintf("%04d-%02d-%02d", $year, $month, $day);
Пример 6. sprintf(): форматирование валюты
$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
// echo $money will output "123.1";
$formatted = sprintf("%01.2f", $money);
// echo $formatted выдаст "123.10"

Назад Оглавление Вперёд
soundex Вверхsscanf

Хостинг от uCoz