Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

 
liveinternet.ru: показано количество просмотров и посетителей

Библиотека :: Компьютеры и Программирование :: Котеров Д. В. - Самоучитель PHP 4
<<-[Весь Текст]
Страница: из 287
 <<-
 
 $money1 + $money2; 
// echo $money выведет "123.1"... 
$formatted = sprintf ("%01.2f", $money); 
// echo $formatted выведет "123.10"! 
Вот пример вывода целого числа, предваренного нужным количеством нулей: 
$isodate=sprintf("%04d-%02d-%02d",$year,$month,$day); 
Последний пример может вам очень пригодиться и показывает, насколько удобной 
может иногда быть функция sprintf(). 
void printf(string $format [, mixed args, ...]) 
Делает то же самое, что и sprintf(), только результирующая строка не 
возвращает- 
ся, а направляется в браузер пользователя. 
string number_format(float $number, int $decimals, 
string $dec_point=".", string $thousands_sep=","); 
Эта функция форматирует число с плавающей точкой с разделением его на триады с 
указанной точностью. Она может быть вызвана с двумя или четырьмя аргументами, 
но не с тремя! Параметр $decimals задает, сколько цифр после запятой должно 
быть у числа в выходной строке. Параметр $dec_point представляет собой раздели- 

тель целой и дробной частей, а параметр $thousands_sep — разделитель триад в 
числе (если указать на его месте пустую строку, то триады не отделяются друг от 
дру- 
га). 
В PHP существует еще несколько функций для выполнения форматных преобразова- 
ний, среди них — sscanf() и fscanf(), которые часто применяются в Си. Однако 
в PHP их использование весьма ограничено: чаще всего для разбора строк 
оказывает- 
ся гораздо выгоднее привлечь регулярные выражения или функцию explode(). 
Именно по этой причине я здесь не уделяю повышенного внимания этим функциям. 
Работа с бинарными данными 
Как мы уже знаем, строки могут содержать любые, в том числе и бинарные, данные 
(то есть, символы с кодами, меньшими 32). Для работы с такими строками иногда 
удобно использовать функции pack() и unpack(). 
string pack(string $format [,mixed $args, ...]) 
Функция pack() упаковывает заданные аргументы в бинарную строку, которая затем 
и возвращается. Формат параметров, а также их количество, задается при помощи 

Глава 12. Строковые функции 221 
строки $format, которая представляет собой набор однобуквенных спецификаторов 
форматирования — наподобие тех, которые указываются в sprintf(), но только без 
знака %. После каждого спецификатора может стоять число, которое отмечает, 
сколь- 
ко информации будет обработано данным спецификатором. А именно, для форматов 
a, A, h и H число задает, какое количество символов будет помещено в бинарную 
строку из тех, что находятся в очередном параметре-строке при вызове функции 
(то 
есть, определяется размер поля для вывода строки). В случае @ оно определяет 
абсо- 
лютную позицию, в которую будут помещены следующие данные. Для всех осталь- 
ных спецификаторов следующие за ними числа задают количество аргументов, на 
которые распространяется действие данного формата. Вместо числа можно указать *,
 
в этом случае подразумевается, что спецификатор действует на все оставшиеся 
дан- 
ные. Вот полный список спецификаторов формата: 
r a — строка, свободные места в поле заполняются символом с кодом 0; 
r A — строка, свободные места заполняются пробелами; 
r h — шестнадцатеричная строка, младшие разряды в начале; 
r H — шестнадцатеричная строка, старшие разряды в начале; 
r c — знаковый байт (символ); 
r C — беззнаковый байт; 
r s — знаковое короткое целое (16 битов, порядок байтов определяется архитекту- 

рой процессора); 
r S — беззнаковое короткое целое; 
r n — беззнаковое целое (16 битов, старшие разряды в конце); 
r v — беззнаковое целое (16 битов, младшие разряды в конце); 
r i — знаковое целое (размер и порядок байтов определяется архитектурой); 
r I — беззнаковое целое; 
r l — знаковое длинное целое (32 бита, порядок байтов определяется архитекту- 
рой); 
r L — беззнаковое длинное целое; 
r N — беззнаковое длинное целое (32 бита, старшие разряды в конце); 
r V — беззнаковое целое (32 бита, младшие разряды в конце); 
r f — число с плавающей точкой (зависит от архитектуры); 
r d — число с плавающей точкой двойной точности (зависит от архите
 
<<-[Весь Текст]
Страница: из 287
 <<-