|
нечно, это
имеет смысл только для строк, содержащих "русские" буквы, т. к. латиница во
всех
кодировках выглядит одинаково. Разумеется, кодировка $from должна совпадать с
истинной кодировкой строки, иначе результат получится неверным. Значения $from
и $to — один символ, определяющий кодировку:
r k — koi8-r
r w — windows-1251
r i — iso8859-5
r a — x-cp866
r d — x-cp866
r m — x-mac-cyrillic
Функция работает достаточно быстро, так что ее вполне можно применять, скажем,
для перекодировки писем в нужную форму перед их отправкой по электронной почте.
Функции форматных преобразований
Как мы знаем, переменные в строках PHP интерполируются, поэтому практически
всегда задача "смешивания" текста со значениями переменных не является пробле-
мой. Например, мы можем спокойно написать что-то вроде:
echo "Привет, $name! Вам $age лет.";
Вспомните, что в Си нам приходилось для аналогичных целей писать следующий
код:
printf("Привет, %s! Вам %s лет",name,age);
Язык PHP также поддерживает ряд функций, использующих такой же синтаксис, как
и их Си-эквиваленты. Бывают случаи, когда их применение дает наиболее красивое
и
лаконичное решение, хотя это и случается довольно нечасто.
string sprintf(string $format [, mixed args, ...])
Эта функция — аналог функции sprintf() в Си. Она возвращает строку, состав-
ленную на основе строки форматирования, содержащей некоторые специальные сим-
Глава 12. Строковые функции 219
волы, которые будут впоследствии заменены на значения соответствующих перемен-
ных из списка аргументов.
Строка форматирования $format может включать в себя команды форматирования,
предваренные символом %. Все остальные символы копируются в выходную строку
как есть. Каждый спецификатор формата (то есть, символ % и следующие за ним ко-
манды) соответствует одному, и только одному параметру, указанному после пара-
метра $format. Если же нужно поместить в текст % как обычный символ, необходи-
мо его удвоить:
echo sprintf("The percentage was %d%%",$percentage);
Каждый спецификатор формата включает максимум пять элементов (в порядке их
следования после символа %):
r Необязательный спецификатор размера поля, который указывает, сколько симво-
лов будет отведено под выводимую величину. В качестве символов-заполнителей
(если значение имеет меньший размер, чем размер поля для его вывода) может
использоваться пробел или 0, по умолчанию подставляется пробел. Можно задать
любой другой символ-наполнитель, если указать его в строке форматирования,
предварив апострофом '. (См. примеры, как это делается.)
r Опциональный спецификатор выравнивания, определяющий, будет результат вы-
ровнен по правому или по левому краю поля. По умолчанию производится вырав-
нивание по правому краю, однако можно указать и левое выравнивание, задав
символ - (минус).
r Необязательное число, определяющее размер поля для вывода величины. Если
результат не будет в поле помещаться, то он "вылезет" за края этого поля, но не
будет усечен.
r Необязательное число, предваренное точкой ".", предписывающее, сколько знаков
после запятой будет в результирующей строке. Этот спецификатор учитывается
только в том случае, если происходит вывод числа с плавающей точкой, в против-
ном случае он игнорируется.
r Наконец, обязательный (заметьте — единственный обязательный!) спецификатор
типа величины, которая будет помещена в выходную строку:
· b — очередной аргумент из списка выводится как двоичное целое число;
· c — выводится символ с указанным в аргументе кодом;
· d — целое число;
· f — число с плавающей точкой;
· o — восьмеричное целое число;
· s — строка символов;
· x — шестнадцатеричное целое число с маленькими буквами a—z;
Часть IV. Стандартные функции PHP 220
· X — шестнадцатеричное число с большими буквами A—Z.
Вот как можно указать точность представления чисел с плавающей точкой:
$money1 = 68.75;
$money2 = 54.35;
$money
|
|