#3. 2 php Форматирование строк

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

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

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

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

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

  • % Применяется для вывода символа процента. Аргумент не используется.
  • b Аргумент считается целым числом и выводится в виде двоичного числа.
  • с Аргумент считается целым числом и выводится в виде символа с соответствующим кодом ASCII.
  • d Аргумент считается целым числом и выводится в виде десятичного числа со знаком.
  • е Аргумент считается вещественным числом (float) и выводится в экспоненциальном виде, например 1.2е+2.
  • f Аргумент считается вещественным числом (float) и выводится в виде десятичного числа.
  • о Аргумент считается целым числом и выводится в виде восьмеричного числа.
  • s Аргумент считается строкой и выводится как строка.
  • u Аргумент считается целым числом и выводится в виде целого числа без знака.
  • х Аргумент считается целым числом и выводится в виде шестнадцате- ричного числа, используются прописные буквы.
  • X Аргумент считается целым числом и выводится в виде шестнадцате- ричного числа, используются строчные буквы.

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

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

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

У меня б яблок и 56 апельсинов.
$5999.99
1.20
10.20
100.20
Сейчас у меня 5 яблок и 45 апельсинов.

Key Words for FKN + antitotal forum (CS VSU):