Преобразование HTML к простому тексту в PHP для электронной почты

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

79
задан Benjamin 30 December 2016 в 00:46
поделиться

3 ответа

Использовать html2text (например, с HTML на текст ) под лицензией Общественная лицензия Eclipse . Он использует методы PHP DOM для загрузки из HTML, а затем выполняет итерацию по полученному DOM для извлечения простого текста. Использование:

// when installed using the Composer package
$text = Html2Text\Html2Text::convert($html);

// usage when installed using html2text.php
require('html2text.php');
$text = convert_html_to_text($html);

Несмотря на то, что он неполный, он имеет открытый исходный код, и предложения приветствуются.

Проблемы с другими сценариями преобразования:

  • Поскольку html2text (GPL) не совместим с EPL.
  • Ссылка lkessler (указание источника) несовместима с большинством лицензий с открытым исходным кодом.
97
ответ дан 24 November 2019 в 10:11
поделиться

Есть надежная функция strip_tags . Хотя это некрасиво. Это только санирует. Вы можете комбинировать это с заменой строки, чтобы получить ваши причудливые подчеркивания.


<?php
// to strip all tags and wrap italics with underscore
strip_tags(str_replace(array("<i>", "</i>"), array("_", "_"), $text));

// to preserve anchors...
str_replace("|a", "<a", strip_tags(str_replace("<a", "|a", $text)));

?>
11
ответ дан 24 November 2019 в 10:11
поделиться

Преобразование HTML в текст с помощью DOMDocument является жизнеспособным решением. Рассмотрим HTML2Text, для которого требуется PHP5:

Относительно UTF-8, в описании на странице с практическими рекомендациями говорится:

Собственная поддержка Unicode в PHP довольно слабая, и это не так. всегда обрабатывайте utf-8 правильно. Хотя сценарий html2text использует методы, безопасные для юникода (без использования модуля mbstring), он не всегда может справиться с собственной обработкой кодировок PHP. PHP на самом деле не понимает Unicode или кодировки, такие как utf-8, и использует базовую кодировку системы, которая, как правило, принадлежит к семейству ISO-8859. В результате то, что вам может показаться допустимым символом в вашем текстовом редакторе, в формате utf-8 или однобайтовом, вполне может быть неправильно истолковано PHP. Таким образом, даже если вы думаете, что вводите действительный символ в html2text, возможно, это не так.

Автор предлагает несколько подходов к решению этой проблемы и заявляет, что версия 2 HTML2Text (с использованием DOMDocument) поддерживает UTF-8.

Обратите внимание на ограничения для коммерческого использования.

13
ответ дан 24 November 2019 в 10:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: