Опубликован: 01.03.2005 | Уровень: для всех | Доступ: платный
Лекция 8:

Работа со строками

< Лекция 7 || Лекция 8: 123456 || Лекция 9 >

Строки, содержащие 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 и другие (русские кодировки также поддерживаются - см. http://ru2.php.net/manual/en/function.htmlspecialchars.php).

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

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

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

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

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

Заключение

Итак, мы завершили знакомство с функциями работы со строками языка PHP. Конечно же, мы затронули далеко не все существующие функции, а лишь малую часть. Мы изучили функции, позволяющие найти набор символов в строке, функции, заменяющие все вхождения одной строки на другую, функции разделения строки на части и соединения нескольких строк в одну, а также рассмотрели функции, позволяющие выводить на экран строки, содержащие html–код без их форматирования браузером.

< Лекция 7 || Лекция 8: 123456 || Лекция 9 >
Федор Антонов
Федор Антонов

Здравствуйте!

Записался на ваш курс, но не понимаю как произвести оплату.

Надо ли писать заявление и, если да, то куда отправлять?

как я получу диплом о профессиональной переподготовке?

Сергей Крупко
Сергей Крупко

Добрый день.

Я сейчас прохожу курс  повышения квалификации  - "Профессиональное веб-программирование". Мне нужно получить диплом по этому курсу. Я так полагаю нужно его оплатить чтобы получить диплом о повышении квалификации. Как мне оплатить этот курс?

 

Анатолий Федоров
Анатолий Федоров
Россия, Москва, Московский государственный университет им. М. В. Ломоносова, 1989