Вывод текста с помощью функции «echo»


Итак, с помощью команды echo можно выводить практически любой текст, при этом Web-сервер поместит текст в то место, где расположена инструкция echo. Синтаксис этой команды выглядит достаточно просто: echo   "text";

В результате находящийся в скобках текст будет выведен вместо самой инструкции echo. Если вместо обычного текста вы поместите в скобки текст в формате HTML - например,

<?   echo   "<Ь>Тест</Ь>";   ?>

то это приведет тому же результату, как если бы вы непосредственно вставили в текст: <Ь>Тест</b>.

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

Если необходимо вывести на Web-страницу текст, который включает особые символы, такие как <, >, или &, то необходимо заменить их на HTML коды: &lt; ,&gt; и &amp; . При выводе текста с помощью команды echo им те не использовать эти HTML-коды, а непосредственно использовать символы, поскольку для их правильной обработки достаточно использовать функцию PHP htmlspecialchars ().

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

<?echo    htmlspecialchars   ("< &  >"); ?>

Когда вы вызываете этот файл в браузере, то появляется текст «< & >», и больше данный файл ничего не делает. Но если вы снова посмотрите на исходный текст программы и на результаты ее работы, то поймете, что символы были заменены на числовые эквиваленты без каких-то особых усилий.

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

<?
echo htmlspecialchars ( "<<Фраза 1>>"), "<br>", htmlspecialchars
("<<фраза 2»"), "<br>", htmlspecialchars ("«Фраза 3»");
?>

Итак, пока все понятно. Тем не менее, могут возникнуть проблемы, когда текст содержит кавычки - ведь в команде echo они используются для обозначения начала и конца текстовой строки. Например, когда необходимо выполнить инструкцию

<?
echo "Это "цитированный" текст";
?>

то PHP при интерпретации данной команды столкнется с трудностями.

Сначала в качестве строки для вывода будет определена часть между пер­выми скобками, то есть будет выполнена инструкция echo "Это ", а следующий остаток строки - то есть фрагмент "цитированный" текст" - будет воспринят PHP как новая инструкция - которая оказывается системе совершенно незна­комой. Обработка скрипта в этом месте прекращается и выводится сообщение об ошибке.

Для того чтобы с помощью echo корректно вывести текст, который со­держит кавычки (или другие критически важные для языка символы), необхо­димо сообщить PHP, что в данном тексте кавычки обозначают не конец стро­ки, а принадлежат самой текстовой строке.

Для этой цели можно использовать символ обратной косой черты (бэк слэш) \. Все следующие за данным символом знаки обрабатываются PHP как текстовые, а не как управляющие символы или функции. Для полноты необ­ходимо сказать, что существуют и определенные исключения. Например, комбинация символов \n служит для перехода к новой строке.

Те, кто помогает скрыться - Итак, с помощью обратной косой черты мы можем на короткое время изба­виться от строгих правил PHP, и такие символы часто называются «escape-символами», или «экранирующими символами». Так как при использовании \ управляющий символ можно записать в виде нормальных символов, также часто говорится, что управляющий символ был «экранирован, погашен».

Итак, давайте внесем необходимые исправления и добьемся того, чтобы не возникало сообщение об ошибке:

<?echo  "Это \"цитированный\"  текст"; ?>

Давайте добавим еще и htmlspecialchars ():

<? echo htmlspecialchars("Это  \"цитированный\"  текст"); ?>

Теперь можно увидеть, что кавычки корректно преобразованы в HTML-символы для кавычек (&quot;).

 


Тэги:

Комментарии: 0

Прокомментировать »

 
 
 

Прокомментировать

 
 
Сообщение *
 
Проверочный код *
 
 
 
Яндекс.Метрика