П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 3519 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 6121 раз(а).

Учебник HTML.
Просмотров 3276 раз(а).

Руководство по PHP5.
Просмотров 5497 раз(а).

Хостинг через призму DNS.
Просмотров 4144 раз(а).

Подборка текстов стандартных документов.
Просмотров 55772 раз(а).

Учебник PHP - Самоучитель
Просмотров 3090 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 5706 раз(а).

Внешние атаки...
Просмотров 3840 раз(а).

Учебник PHP.
Просмотров 2825 раз(а).

SSI в примерах.
Просмотров 37462 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





ГЛАВА 8. Строки и регулярные выражения

Преобразование строк и файлов к формату HTML и наоборот

Преобразовать строку или целый файл к формату, подходящему для просмотра в web-браузере(или наоборот), проще, чем может показаться на первый взгляд. В РНР для этого существуют специальные функции.

Преобразование текста в HTML

Быстрое преобразование простого текста к формату web-браузера — весьма распространенная задача. В ее решении вам помогут функции, описанные в этом разделе.

nl2br()

Функция nl2br() заменяет все символы новой строки(\n) эквивалентными конструкциями HTML <br>.

Синтаксис функции nl2br():


string nl2br(string строка)

Символы новой строки могут быть как видимыми(то есть явно включенными в строку), так и невидимыми(например, введенными в редакторе). В следующем примере текстовая строка преобразуется в формат HTML посредством замены символов \n разрывами строк:

// Текстовая строка, отображаемая в редакторе.
$text_recipe = "
Party Sauce recipe:
1 can stewed tomatoes
3 tablespoons fresh lemon juice
Stir together, server cold.";

// Преобразовать символы новой строки в <br>
$htinl_recipe = nl2br($text_recipe)

При последующем выводе $html_recipe браузеру будет передан следующий текст в формате HTML:

Party Sauce recipe:<br>
1 can stewed tomatoes<br>
3 tablespoons fresh lemon juice<br>
Stir together, server cold.<br>

htmlentities()

Функция htmlentities() преобразует символы в эквивалентные конструкции HTML.

Синтаксис функции htmlentities:


string htmlentities(string строка)

В следующем примере производится необходимая замена символов строки для вывода в браузере:

$user_input = "The cookbook, entitled Cafe Francaise' costs < $42.25.";
$converted_input = htmlentities($user_input);

// $converted_input = "The cookbook, entitled 'Caf&egrave;
// Frac&ccediliaise' costs &lt; 42.25.";

Функция htmlentities() в настоящее время работает только для символов кодировки ISO-8559-1(ISO-Latin-1). Кроме того, она не преобразует пробелы в &nbsp;, как следовало бы ожидать.

htmlspecialchars()

Функция htmlspecialchars() заменяет некоторые символы, имеющие особый смысл в контексте HTML, эквивалентными конструкциями HTML.

Синтаксис функции htmlspecialchars():


string htmlspecialchars(string строка)

Функция htmlspecialchars() в настоящее время преобразует следующие символы:

  • & преобразуется в &amp;; " " преобразуется в &quot;;
  • < преобразуется в &lt;; > преобразуется в &gt;.

В частности, эта функция позволяет предотвратить ввод пользователями разметки HTML в интерактивных web-приложениях(например, в электронных форумах). Ошибки, допущенные в разметке HTML, могут привести к тому, что вся страница будет формироваться неправильно. Впрочем, у этой задачи существует и более эффективное решение — полностью удалить теги из строки функцией strip_tags().

Следующий пример демонстрирует удаление потенциально опасных символов функцией htmlspeclalchars():

$user_input = "I just can't get «enough» of PHP & those fabulous cooking recipes!";
$conv_input = htmlspecialchars($user_input);

// $conv_input = "I just can't &lt;&lt;enough&gt;&gt; of PHP &amp those fabulous cooking recipes!"

Если функция htmlspecialchars() используется в сочетании с nl2br(), то последнюю следует вызывать после htmlspecialchars(). В противном случае конструкции <br>, сгенерированные при вызове nl2br(), преобразуются в видимые символы.

get_html_translation_table()

Функция get_html_translation_table() обеспечивает удобные средства преобразования текста в эквиваленты HTML.

Синтаксис функции get_htrril_translation_table():


string get_html_translation_table(int таблица)

Функция get_html_translation_table() возвращает одну из двух таблиц преобразования (определяется параметром таблица), используемых в работе стандартных функций htmlspecialchars() и htmlentities(). Возвращаемое значение может использоваться в сочетании с другой стандартной функцией, strtr()(см. далее), для преобразования текста в код HTML.

Параметр таблица принимает одно из двух значений:

  • HTML_ENTITIES;
  • HTML_SPECIALCHARS.

В следующем примере функция get_html_translation_table() используется при преобразовании текста в код HTML:

$string = "La pasta e il piatto piu amato in Italia";
$translate = get_html_translation_table(HTML_ENTITIES);
print strtr($string, $translate);

// Специальные символы преобразуются в конструкции HTML
// и правильно отображаются в браузере.

Кстати, функция array_flip() позволяет провести преобразование текста в HTML в обратном направлении и восстановить исходный текст. Предположим, что вместо вывода результата strtr() в предыдущем примере мы присвоили его переменной $translated string.

В следующем примере исходный текст восстанавливается функцией array_flip():

$translate = array_flip($translate);
$translated_string - "La pasta &eacute; il piatto pi&uacute; amato in Italia";
$original_string = strtr($translated_string, $translate);

// $original_string = "La pasta e il piatto piu amato in Italia";

strtr()

Функция strtr() транслирует строку, то есть заменяет в ней все символы, входящие в строку источник, соответствующими символами строки приемник.

Синтаксис функции strtr():


string strtr(string строка, string источник, string приемник)

Если строки источник и приемник имеют разную длину, длинная строка усекается до размеров короткой строки.

Существует альтернативный синтаксис вызова strtr() с двумя параметрами; в этом случае второй параметр содержит ассоциативный массив, ключи которого соответствуют заменяемым подстрокам, а значения — заменяющим подстрокам. В следующем примере теги HTML заменяются XML-подобными конструкциями:

$source = array("<title>" => "<h1>". "</title> => "</h1>");
$string = "<h1>Today In PHP-Powered News"</h1>";
print strtr($string, $source);

// Выводится строка "<title>Today in PHP-Powered News</title>"

Назад | Содержание раздела | Общее Содержание | Вперед



Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru