Опубликован: 01.03.2005 | Доступ: свободный | Студентов: 33896 / 4520 | Оценка: 4.31 / 4.06 | Длительность: 16:41:00
ISBN: 978-5-9556-0026-0
Лекция 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 >
Дарья Федотова
Дарья Федотова
Сергей Березовский
Сергей Березовский

В рамках проф. переподготовки по программе "Программирование"

Есть курсы, которые я уже прошел. Но войдя в курс я вижу, что они не зачтены (Язык Ассемблера и архитектура ЭВМ, Программирование на С++ для профессионалов). Это как?

Алексей Ласкин
Алексей Ласкин
Россия, Москва, НИБ
Михаил Акимов
Михаил Акимов
Россия, Москвп, МИРЭА, МГУПИ, МИТХТ