Форматирование и вывод строк
Форматирование и вывод строк
Выводит строку, значение переменной или выражение.
Синтаксис:
print(string arg)
Функция print() выводит аргумент arg, в качестве которого может быть переменная или выражение.
echo
Производит вывод одного или нескольких значений.
Синтаксис:
echo(string arg1, string [argn]...)
Функция echo() выводит значения перечисленных параметров.
echo() - фактически языковая конструкция, поэтому для нее не обязательны скобки, даже если используется несколько аргументов.
echo "Перенос на следующую строку,
имеющийся в коде, сохраняется
и используется при выводе".
"чтобы избежать этого используйте".
"оператор конкатенации";
printf
Вывод отформатированной строки.
Синтаксис:
int printf(string format [, mixed args, ...]);
Делает то же самое, что и sprintf(), только результирующая строка не возвращается, а направляется в браузер пользователя.
sprintf
Производит форматирование строки с подстановкой переменных.
Синтаксис:
sprintf($format [,args, ...])
Эта функция возвращает строку, составленную на основе строки форматирования, содержащей некоторые специальные символы, которые будут впоследствии заменены на значения соответствующих переменных из списка аргументов.
Строка форматирования $format может включать в себя команды форматирования, предваренные символом %. Все остальные символы копируются в выходную строку как есть. Каждый спецификатор формата (то есть, символ % и следующие за ним команды) соответствуют одному, и только одному параметру, указанному после параметра $format. Если же нужно поместить в текст % как обычный символ, необходимо его удвоить:
echo sprintf("The percentage was %d%%",$percentage);
Каждый спецификатор формата включает максимум пять элементов (в порядке их следования после символа %):
Вот как можно указать точность представления чисел с плавающей точкой:
$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
// echo $money выведет "123.1"...
$formatted = sprintf ("%01.2f", $money);
// echo $formatted выведет "123.10"!
Вот пример вывода целого числа, предваренного нужным количеством нулей:
$isodate=sprintf("%04d-%02d-%02d",$year,$month,$day);
sscanf
Производит интерпретацию строки согласно формату и занесение значений в переменные.
Синтаксис:
mixed sscanf(string str, string format [, string var1 ...])
Функция sscanf() является противоположностью функции printf(). Она интерпретирует строку str согласно формату format, аналогично спецификации printf(). При указании только двух аргументов полученные значения возвращаются в массиве.
// получение серийного номера
$serial = sscanf("SN/235-0001", "SN/%3d-%4d");
echo $serial[0]*10000+$serial[1]; // выводит: 2350001
// и даты изготовления
$date = "January 01 2000";
list($month, $day, $year) = sscanf($date, "%s %d %d");
echo "Дата: $year-".substr($month,0,3)."-$dayn";
// выводит: 2000-Jan-01
При указании дополнительных необязательных параметров (их следует передавать по ссылке) функция возвращает их число. Те переменные, которые не получают значений, в возвращаемом значении не учитываются.
// генерируем XML запись из строки
$auth = "765tLewis Carroll";
$n = sscan($auth,"%dt%s %s", &$id, &$first, &$last);
echo "<author id="$id">
<firstname>$first</firrstname>
<surname>$last</surname>
</author>n";