PHP

Преобразование 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);
// конвертируем 
, <hr>, <p>, <div> в символы конца строки
$s = preg_replace('@<(b|h)r[^>]*>@i',"\n",$s);
$s = preg_replace('@<p[^>]*>@i',"\n\n",$s);
$s = preg_replace('@<div[^>]*>(.*)</div>@i',"\n".'$1'."\n",$s);
// конвертируем полужирный шрифт и курсив
$s = preg_replace('@]*>(.*?)@i','*$1*',$s);
$s = preg_replace('@<i[^>]*>(.*?)</i>@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;
}
Теги:
автоматизация
Добавлено: 22 Июля 2018 13:20:40 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...