→ Пошук по сайту       Увійти / Зареєструватися
Знання Мова програмування PHP Работа со строками

Строки, содержащие html-код

Компетенція Програмування на PHP

Строки, содержащие html-код

Достаточно часто мы работаем со строками, содержащими html-теги. Если отобразить такую строку в браузер с помощью обычных функций отображения данных echo() или print(), то мы не увидим самих html-тегов, а получим отформатированную в соответствии с этими тегами строку. Браузер обрабатывает все html-теги в соответствии со стандартом языка HTML. Иногда нам нужно видеть непосредственно строку, без обработки ее браузером. Чтобы этого добиться, нужно перед тем, как выводить, применить к ней функцию htmlspecialchars().

Функция htmlspecialchars (строка [, стиль кавычек [, кодировка]]) переводит специальные символы, такие как «<», «>», «&», «"» , «'» в такие сущности языка HTML, как «&lt;», «&gt;», «&amp;», «&quot;», «&#039;» соответственно.

Дополнительный аргумент стиль кавычек определяет, как должны интерпретироваться двойные и одинарные кавычки. Он может иметь одно из трех значений: ENT_COMPAT, ENT_QUOTES, ENT_NOQUOTES. Константа ENT_COMPAT означает, что двойные кавычки должны быть переведены в спецсимволы, а одинарные должны остаться без изменений. ENT_QUOTES говорит, что должны конвертироваться и двойные и одинарные кавычки, а ENT_NOQUOTES оставляет и те и другие кавычки без изменений.

В параметре кодировка могут быть заданы такие кодировки, как UTF-8, ISO-8859-1 и другие, но ни одна русская кодировка здесь не поддерживается.

<?php
$new = htmlspecialchars("<a 
    href='mailto:au@mail.ru'>
    Написать письмо</a>", ENT_QUOTES);
echo $new; 

/ * наша строка перекодируется в такую:
&lt;a href=&#039;mailto:au@mail.ru'&gt;
Написать письмо&lt;/a&gt; */
    
Пример 8.13. Использование функции htmlspecialchars()

В браузере мы увидим:

<a href='mailto:au@mail.ru'>
Написать письмо</a>

Функция htmlspecialchars() перекодирует только наиболее часто используемые спецсимволы. Если необходимо конвертировать все символы в сущности HTML, следует задействовать функцию htmlentities(). Русские буквы при использовании этой функции тоже кодируются специальными последовательностями. Например, буква «А» заменяется комбинацией «&Agrave;». Ее синтаксис и принцип действия аналогичен синтаксису и принципу действия htmlspecialchars().

    © INTUIT.ru. Автор: Н.В. Савельева. Курс размещен по договоренности с администрацией INTUIT.ru
загрузка...
Теми розділу
Сторінки, близькі за змістом