1. ホーム
  2. php

[解決済み] PHP で HTML をプレーンテキストに変換して電子メールを送信する

2023-04-28 12:58:26

質問

私は TinyMCE を使用して、サイト内のテキストに最小限の書式を適用できるようにしています。生成されたHTMLから、電子メール用にプレーンテキストに変換したいと思います。私はこれまで html2text というクラスを使っていますが、UTF-8のサポートなど、本当に不足しています。しかし、特定の HTML タグをプレーンテキストの書式にマッピングしてくれるところが気に入っています。たとえば、以前は HTML に <i> タグがあったテキストをアンダースコアで囲むことができます。

PHP で HTML をプレーンテキストに変換するために同様のアプローチを使用している人はいますか?そして、もしそうなら。私が使用できるサードパーティのクラスをお勧めしますか?あるいは、どのようにこの問題に取り組むのが最善なのでしょうか?

どのように解決するのですか?

使用方法 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 のリンク (帰属) は、ほとんどのオープンソースライセンスと互換性がありません。