Подсветка синтаксиса кода на PHP

Полезность данной функции не вызывает сомнений. Подсветка кода способна значительно улучшить читаемость листингов кода, либо здорово облечить жизнь web мастерам, вынужденным раскрашивать код вручную.

Удаление некорректной или нестандартной разметки HTML

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

Воспользуйтесь расширением PHP Tidy. Это расширение при помощи популярной мощной библиотеки HTML Tidy превращает хаотичную мешанину из тегов в синтаксически корректную, соответствующую стандартам разметку HTML или XHTML. Пример  показывает, как исправить некорректный файл.

В библиотеке HTML Tidy за прошедшее время были собраны многочисленные правила и функции для исправления разнообразных нарушений HTML. К счастью, чтобы пользоваться Tidy, вам не нужно знать об этих правилах. Просто передайте имя файла функции tidy_repair_file() , и вы получите исправленную версию. Допустим, файл bad.html содержит следующую разметку:

Листинг записывает в файл good.html следующую разметку:

Решение Tidy содержит множество конфигурационных параметров, влияющих на генерируемый результат. Параметры передаются tidy_repair_file() во втором аргументе, который содержит массив параметров и значений. В листинге используется параметр output-xhtml , который приказывает Tidy сгенерировать действительную разметку XHTML. Листинг Генерирование XHTML с использованием Tidy

Код записывает в good.xhtml следующий вывод:

Если источником является строка, а не файл, используйте tidy_repair_string(). Функция получает первый аргумент с разметкой HTML, а не имя файла. Исправленный код XHTML, сгенерированный Tidy, также предоставляет возможность пометки HTML без использования регулярных выражений. После того как разметка HTML будет преобразована в синтаксически корректный документ XHTML, ее можно корректно обработать и преобразовать функциями PHP DOM. В коде показано, как это делается. Разметка веб-страницы средствами Tidy и DOM

Тут команда preg_replace() для добавления разметки применяется ко всем текстовым узлам дерева DOM, полученного при загрузке исправленной версии входной разметки HTML в объект DOMDocument . А самое замечательное — мы можем быть уверены в том, что замена применяется только к тексту. Любая некорректная разметка HTML, которая могла бы сбить с толку регулярное выражение для поиска HTML в коде, будет исправлена Tidy до создания объекта DOMDocument. Недостаток такого решения заключается в том, что в зависимости от степе-
ни ­некорректности входной разметки HTML результат преобразования Tidy может оказаться не таким, какой вы ожидаете. Вот какой результат выдает код:

Обратите внимание на последнюю часть: herring
is not a real HTML element! .
Поскольку не является действительным элементом XHTML, Tidy удаляет и , оставляя внутренний текст. Это разумная мера для получения действительного документа XHTML, но если вы к ней не готовы, она может стать неприятным сюрпризом.