Преобразование HTML в ASCII

Задача
Необходимо преобразовать документ HTML в читаемый, форматированный ASCII-текст.

Решение
Если доступны внешние программы, преобразующие HTML в ASCII, такие как lynx, то вызовите их, например так:

$file = escapeshellarg($file);
$ascii = `lynx -dump $file`;

Обсуждение
Если внешняя программа форматирования недоступна, то функция pc_html2ascii(), показанная в примере 11.4, обрабатывает приемлемое подмножество HTML-элементов (без таблиц, фреймов и т. д.).

Пример 11.4. pc_html2ascii()
function pc_html2ascii($s) {
// конвертируем ссылки
$s = preg_replace('/]*)"?[^>]*>(.*?)<\/a>/i',
'$2 ($1)', $s);
// конвертируем
,
,

,

в символы конца строки
$s = preg_replace('@<(b|h)r[^>]*>@i',"\n",$s);
$s = preg_replace('@]*>@i',"\n\n",$s);
$s = preg_replace('@]*>(.*)
@i',"\n".'$1'."\n",$s);
// конвертируем полужирный шрифт и курсив
$s = preg_replace('@]*>(.*?)@i','*$1*',$s);
$s = preg_replace('@]*>(.*?)@i','/$1/',$s);
// декодируем поименованные элементы
$s = strtr($s,array_flip(get_html_translation_table(HTML_ENTITIES)));
// декодируем нумерованные элементы
$s = preg_replace('//e','chr(\\1)',$s);
// удаляем все оставшиеся теги
$s = strip_tags($s);
return $s;
}

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела PHP на эту тему:
Анализ файла протокола веб-сервера
Выделение информации на веб-странице
Извлечение содержимого URL с помощью метода POST
Извлечение ссылок из HTML-файла
Использование шаблонов системы Smarty

Вернуться в раздел: PHP / 11. Автоматизация работы с Web