Консультация № 38934
30.03.2006, 06:32
0.00 руб.
0 1 1
Уважаемые эксперты!
Уточните, каким образом обрабатываются тэги вида <backslash><символ>. Дело в том, что я тестирую примеры из книги, и при выполнении программы (см. Приложение - часть 1) эти тэги выводятся как пробелы. При выполнении аналогичной строки в коде HTML тэги выводятся без изменений (как текст) - я с этим согласен, т.к. читал, что они и не должны обрабатываться HTML (см. Приложение - часть 2).
Но в той же книге (да и везде в Интернете) написано, что PHP ОБРАБАТЫВАЕТ такие тэги.
Опытным путем установил, что эти тэги выполняются, если заключить их в <pre> (см. Приложение - часть 3).
Так что же происходит, когда выполняется вывод тэгов в PHP?

ПО: Apache 2.0, PHP 5, InternetExplorer 6.0
Тестирую следующим образом: помещаю <файл>.php в каталог htdocs и в браузере набираю строку - см. Приложение - часть 4.

Приложение:
Часть 1 - строка программы на PHP: echo "Это \t тест.\n Новая строка"; //выводится с пробелами вместо тэгов \t и \nЧасть 2 - строка в HTML: <b>Это \t тест.\n Новая строка</b>выводится с отображением \t и \n в виде текстаЧасть 3 - когда тэги выполняются на PHP: echo "<pre>"; echo "Это \t тест.\n Новая строка";// выводится с правильной обработкой \t и \n echo "</pre>";Часть 4 - форма строки для запуска кода на PHP: http://localhost/<файл>.php

Обсуждение

Неизвестный
30.03.2006, 11:34
общий
это ответ
Здравствуйте, Михеев Александр Владимирович!

Конструкции типа \n всего лишь заменяються на спецсимволы.
Например, \n заменяется на символ перенос строки (#0D).
Замену таких конструкций выполняет препроцессор.

Любой html движок воспринимает лишь теги, коими спецсимволы не являются.

Для теста, проверте выполнение своего скрипта не в браузере, а в интерпретаторе php напрямую (через консоль) и Вы увидите, что символы работают.

Возможно пример из книги ориентирован на запуск в консоли php, а не в браузере.
Форма ответа