Главная > Программирование > РНР: настольная книга программиста
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

25.4. Функции вывода строк на печать

Научившись осуществлять всевозможные операции вычисления, преобразования и тому подобное, вы сталкиваетесь с проблемой, кактеперьвсе это показать пользователю. Большинство скриптов работают для того, чтобы произвести какую-либо обработку и затем вывести эти значения на экран пользователя, чтобы он мог увидеть результат работы написанного нами скрипта.

Сеть в основном рассчитана на визуальное восприятие, поэтому было бы, конечно, неестественным, если бы язык РНР не имел функций вывода данных на экран браузера. Хотя сложно вообще вспомнить язык программирования, лишенный таких функции, скорее всего это малоизвестный, нераспространенный и действующий для решения задач специального назначения. Что касается изучаемого языка программирования РНР, то он к таким не относится, поэтому имеет обширный перечень функций, позволяющий производить вывод полученного результата на экран.

Все функции РНР осуществляют построковый выводданных. Также РНР осуществляет работу по способу форматирования строки таким образом, как этого требует программист. Все это будет описано при изучении следующих функций:

• sprintf(),

• printf(),

• print(),

• echo().

Чтобы произвести форматирование строки, в соответствии с требованиями программиста необходимо воспользоваться функцией sprintf(). Ее синтаксис:

sprintf(string format, mixed [args]...);

Функция sprintf() возвращает строку, обрабатываемую в соответствии с форматирующей строкой format.

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

Каждое описание изменений состоит из знака %, после которого и следуют один или несколько элементов в указанном порядке:

1. Дополнительное описание заполнения (padding specifier), которое говорит, какие символы будутиспользоваться для заполнения результатад о правильного размера строки. Это могут быть пробелы или 0 (символ нуля). По умолчанию заполняется пробелами. Альтернативный символ заполнения может быть определен одинарной кавычкой.

2. Дополнительное описание выравнивания (alignment specifier), которое говорит, что результат должен быть выровнен по левому или по правому краю. По умолчанию выравнивание происходитпо правому краю; символ а — выравнивание по левому краю.

3. Дополнительное описание ширины (width specifier), которое говорит, с каким минимальнымколичеством символов (minimum) можетпроизводитьсяданная замена.

4. Дополнительное описание точности (precision specifier), которое говорит, сколько десятичных знаков следует отображать для чисел с плавающей точкой. Это описание не действует на остальные типы, кроме double.

5. Описание типа (type specifier), которое говорит о том, как тип данных аргумента должен трактоваться.

Рассмотрим возможные типы:

<?php

/ / первый блок

$num1 = 15.2;

$num2 = 16.4;

$num = ($numl+$num2)/2;

$is = sprintf ("%01.2f", $num);

echo "Результатом форматированной строки будет число ".$is."<br>";

// второй блок

$num4 = 15;

$num5 = 16;

$num6 = 17;

$is1 = sprintf ("%04b-%03b-%02b", $num4, $num5, $num6);

$is2 = sprintf ("%04d-%03d-%02d", $num4, $num5, $num6);

$is3 = sprintf ("%04f-%03f-%02f$num4, $num5, $num6);

$is4 = sprintf ("%04o-%03o-%02o", $num4, $num5, $num6);

$is5 = sprintf ("%04s-%03s-%02s", $num4, $num5, $num6);

$is6 = sprintf ("%04x-%03x-%02x", $num4, $num5, $nuro6);

$is7 = sprintf ("%04X-%03X-%02X", $num4, $num5, $num6);

echo "Двоичное число — аргумент b: ".$is1. "<br>";

echo "Десятичное число — аргумент d: ".$is2. "<br>";

echo "Число с плавающей точкой — аргумент f: " . $is3. "<br>";

echo "Восьмеричное число — аргумент о: ".$is4. "<br>";

echo "Строка — аргумент s: " . $is5. "<br>" ;

echo "Шестнадцатеричное число с буквами в нижнем регистре — аргумент х: " . $is6. "<br>";

echo "Шестнадцатеричное число с буквами в верхнем регистре — аргумент X: ". $is7. "<br>";

?>

Рассмотренный пример можно мысленно разделить на два блока, в первом блоке приводится простая математическая операция и форматирование строки с результатом этой операции. После того как форматирование произведено, происходит вывод результата.

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

Результатом форматированной строки будет число 15.80

Двоичное число — аргумент b: 1111-10000-10001

Десятичное число — аргумент d: 0015-016-17

Число с плавающей точкой — аргумент f: 0015.000000-016.00000017.000000

Восьмеричное число — аргумент о: 0017-020-21 Строка - аргумент s: 0015-016-17

Шестнадцатеричное число с буквами в нижнем регистре — аргумент х: 000f-010-11

Шестнадцатеричное число с буквами в верхнем регистре — аргумент X: 000F-010-11

Изучив основную функцию форматирования строк, перейдем к описанию функций, позволяющих все эти данные выводить на экран. Функция printf() позволяет выводить строки с учетом всех описанных ранее параметров форматирования. Функция printf () является аналогией функции sprintf(). Она отличается только возвращаемым значением. Функция sprintf() возвращает строку в переменную, которую потом можно будет вывести при помощи функции echo() или какой-либо другой, позволяющей отображать строки на экране. А функция printf() выполняет форматирование указанной в ней строки и при этом одновременно производит вывод строки. Рассмотрим синтаксис функции:

int printf (string format [, mixed args...])

Если есть переменная, имеющая какое-либо значение, которое необходимо вывести, используют функцию print(). Она очень проста в использовании и позволяет выводить любые строки и символы в окно браузера. Ее синтаксис:

print(string arg) ;

Вместо параметра arg задается строка. Например:

<?php

$str = "Привет школа !!!";

print $str;

print "Hello world!";

print ("Hello world! ");

?>

Обратите внимание на разные Способы задания значения функции print().

Существует еще одна функция, очень популярная и широко распространенная среди программистов — echo(). Она аналогична функции print(). Думаем, что заэтот период вы уже ознакомились с этой функцией, так как она очень часто использовалась в примерах. Ее синтаксис:

echo (string arg1, string [argn] . . .)

Фактически echo() является не функцией, а конструкцией языка. Если вы хотите передать больше одного параметра через echo, вам не нужно включать параметры в пределах круглых скобок. Приведем пример, характеризующий конструкцию echo:

<?php

echo "Привет мир! <br>";

echo "Позволяет выводить

сложные предложения.

Новая строка будет также выведена. <br>" ;

echo "Позволяет выводить\n сложные предложения. Это новое предложение будет\n также выведено.<br>";

echo "escap характеристики \" Как приведенные

// можно использовать переменные внутри выражений echo

$foo = "footoo";

$bar = "boodoo";

echo "foo is $foo"; // foo is footoo

// при использовании одиночных кавычек значение переменной

// печататься не будет, а будет выведено просто имя этой переменной

echo 'foo is $foo'; // foo is $foo

// когда вы не используете кавычки, а просто указываете переменные,

// конструкция echo выведет значения этих переменных

echo $foo; // footoo

echo $foo, $bar; // footooboodoo

// так как echo не является функцией,

// приведенный ниже код является неверным

($some_var) ? echo ('true'): echo ('false');

// а приведенный ниже пример будет работать

($some_var) ? print ('true') : print ('false') ; // функция print

echo ($some_var) ? 'true': 'false';

?>

Описанные выше функции работают в PHP 3 и PHP 4.

<< Предыдущий параграф Следующий параграф >>
Оглавление