Форматирование строк с помощью функций printf и sprintf

Часто встречается задача представления различных данных в строковом ви­де, например, для вывода на экран. Для этого идеально подходят две функции — printf и sprintf.

printf сразу выводит результат на экран, a sprintf воз­вращает его в виде строки. Ниже приведен синтаксис этих функций (здесь и да­лее аргументы в квадратных скобках являются необязательными):

code: #php
printf(формат  [, аргументы])
sprintf(формат  [, аргументы])

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

  1. Необязательный описатель заполнения, определяющий, какой символ бу­дет использоваться для дополнения результата до требуемой длины. Это может быть пробел (по умолчанию) или 0.
  2. Необязательный символ «-» (минус), который задает выравнивание резуль­тата влево. По умолчанию результат выравнивается вправо.
  3. Необязательное число, задающее минимальное число символов в результа­те форматирования.
  4. Необязательный описатель точности, определяющий, сколько десятичных разрядов отображать для чисел с плавающей точкой. Записывается как точ­ка с числом после нее. Имеет смысл только для числовых данных типа float.
  5. Описатель типа данных аргумента — символ.

Ниже перечислены допустимые описатели типов данных:

% - Применяется для вывода символа процента. Аргумент не использу­ется.

b - Аргумент считается целым числом и выводится в виде двоичного числа.

с - Аргумент считается целым числом и выводится в виде символа с со­ответствующим кодом ASCII.

d - Аргумент считается целым числом и выводится в виде десятичного числа со знаком.

е - Аргумент считается вещественным числом (float) и выводится в экс­поненциальном виде, например 1.2е+2.

f - Аргумент считается вещественным числом (float) и выводится в виде десятичного числа.

о Аргумент считается целым числом и выводится в виде восьмерично­го числа.

s - Аргумент считается строкой и выводится как строка, и Аргумент считается целым числом и выводится в виде целого числа без знака.

х - Аргумент считается целым числом и выводится в виде шестнадцатеричного числа, используются прописные буквы.

Эти функции особенно удобны для работы с вещественными числами. Напри­мер, спецификация формата % f 6.2 описывает вещественное число, которое зай­мет 6 знаков, из них два знака будет отведено на дробную часть числа. Ниже приведен пример использования рассматриваемых функций.

code: #php
<?рпр
  printf  ("У меня %s яблок и %s апельсинов.\п",  6,  56);
  $уеаг = 2005;
  $month = 4;
  $day = 28;
  printf  ("%04d-%02d-%02d\n",  $year,  $month,  $day);
  $price = 5999.99;
  printf("\$%01.2f\n",   $price);
  printf("%6.2f\n",  1.2);
  printf("%6.2f\n",  10.2);
  printf("%6.2f\n",  100.2);
  $string = sprintf ("Сейчас у меня %s яблок и %s апельсинов.\n",  5,  45);
  echo $string;
?>

В этом примере представлен широкий спектр типов данных. Вот что будет выведено на экран в результате:

У меня 6 яблок и 56 апельсинов.
2005-04-28
$5999.99
1.20
10.20
100.20
Сейчас у меня 5 яблок и 45 апельсинов.
Книга: PHP в примерах. Купить книгу
Автор: Стивен Хольцнер. Переводчик: С. Банников
Поделиться:

Похожие статьи: