Пишем первый сценарий РНР
<html> <headxtitle>HTML-nporpaммa</titlex/head> <body> <р>3дравствуй, мир!</р> </body> </html> |
<html> <headxtitle>Сценарий PHP</titlex/head> <body> ‹?php echo "<р>3дравствуй, мир!</р>"; ?› </body> </html> |
‹?php echo "<р>3дравствуй, мир!</р>" ?› |
Детальнее об операторах вывода
В сценарии, созданном в предыдущем разделе, для отображения информации использовался оператор вывода echo. Операторы вывода (output statement) встречаются практически во всех сценариях. Очень редко приходится создавать приложения, в которых ничего не выводится. Действительно, PHP-сценарий может выполнять любые действия незаметно для пользователя, например проверять наличие файла на жестком диске. Но если клиенту ничего не будет выведено, то в чем тогда смысл? Как пользователь узнает, найден файл или нет? А если найден, то где он в таком случае расположен? Соответственно, практически во всех сценариях используются операторы вывода.echo элемент_вывода1, элемент_вывода2, элемент_выводаЗ, .....
- Параметр элемент_вывода может быть числом (например, таким кан 1 или 250) либо текстовой строкой.
- Текстовая строка должна быть заключена в одинарные или двойные кавычки.
- Количество аргументов оператора echo может быть произвольным.
- Аргументы оператора echo разделяются запятой (,) без использования пробелов.
- Если необходимо добавить пробел при выводе различных значений, его следует добавить в строку вывода в качестве отдельного символа.
Ниже в таблице приведены некоторые примеры использования оператора echo.
Пример Результат выполнения echo 123;
echo "Здравствуй, мир!";
echo "Здравствуй,","мир!";
echo "Здравствуй,", " ","мир!";
echo Здравствуй, мир!;
echo ''Здравствуй, мир!';123
3дра в с т вуй, мир!
Здравствуй,мир!
Здравствуй, мир!
Выдаст сообщение об ошибке, поскольку строка не заключена в кавычки
Здравствуй, мир!
Обработка операторов вывода РНР
В сценарии, выводящем строку Здравствуй, мир !, как и в большинстве других сценариев, операторы вывода используются для генерирования кода HTML, который отображается в браузере. В этом случае необходимо помнить о двух этапах, которые при этом выполняются:
- Интерпретатор РНР выполняет операторы РНР, перенаправляет результат работы Web-серверу, который, в свою очередь, отправляет их клиентскому браузеру. РНР никак не обрабатывает HTML-код, а только передает информацию, полученною в результате выполнения РНР-кода.
- Web-браузер интерпретирует полученную от интерпретатора РНР информацию как HTML-код и выводит ее на Web-странице. В отличие от РНР он обрабатывает только HTML-код и не "понимает" кода РНР. Таким образом, нужно позаботиться о том, чтобы Web-браузер корректно интерпретировал информацию, полученную в результате выполнения фрагмента кода на РНР.
В качестве примера рассмотрим оператор вывода echo, отображающий строку Здравствуй, мир!:
echo "<р>3дравствуй, мир!</р>";
Он выводит все, что находится в двойных кавычках (""). Обработка этого РНР-кода будет выполнена в два этапа:
- Результатом выполнения оператора echo будет следующая строка: <р>3дравствуй, мир!</р>. Поскольку интерпретатор РНР не понимает HTML-код, то дескрипторы <р> и </р> никак обработаны не будут, а будут восприниматься как символы текстовой строки.
- Получив строку, Web-браузер, в свою очередь, интерпретирует символы <р> и </р> как открывающий и закрывающий дескрипторы HTML для форматирования текста и выводит его в окне браузера соответствующим образом: Здравствуй, мир! При этом сами дескрипторы не отображаются. Для того чтобы увидеть, что именно было передано браузеру Web-сервером, можно отобразить исходный код HTML-страницы. Для приведенной страницы он будет иметь следующий вид: <р>3дравствуй, мир!</р>
Использование специальных символов в операторах вывода
Оператор echo специальным образом обрабатывает некоторые символы, которые существенно влияют на получаемый результат. Одним из них является символ перехода на новую строку \n. Рассмотрим следующий пример:
echo "<р>3дравствуй,\n мир!</р>"
Символ \n в операторе echo означает переход на новую строку, однако это не отображается в браузере. Для перехода к новой строке на Web-странице необходимо использовать внутри строки специальный дескриптор <br>. Рассмотрим следующий пример:
echo "<р>3дравствуй,<br> мир!</р>"
В этом случае в браузере будет выведено две строки.
В таблице ниже приводятся отличия результатов выполнения оператора echo на разных этапах: после его обработки интерпретатором РНР и в Web-браузере. Первый столбец содержит пример фрагмента кода с оператором echo. Во втором приводится результат его обработки интерпретатором РНР (т.е. то, что передается браузеру), а в третьем — результат, отображаемый в самом браузере.
Пример оператора echo | Результат обработки интерпретатором РНР | Результат отображения в браузере |
echo "Здравствуй, мир!"; | Здравствуй, мир! | Здравствуй, мир! |
echo "Здравствуй,"; echo "мир!"; | Здравствуй, мир | Здравствуй, мир |
echo "Здравствуй,\nмир!"; | Здравствуй, мир! | Здравствуй, мир |
echo "Здравствуй,<br>мир!"; | Здравствуй,<Ьr>мир! | Здравствуй, мир! |
echo "Здравствуй,<br>\nмир!"; | Здравствуй,<Ьг> мир! | Здравствуй, мир! |