私はhtmlからプレーンテキストを取得することを検討しています。php strip_tagsまたはsimplehtmldom平文抽出のどちらを選択する必要がありますか?
simplehtmldomのプロの1つは、無効なhtmlのサポートですが、それ自体で十分ですか?
私はhtmlからプレーンテキストを取得することを検討しています。php strip_tagsまたはsimplehtmldom平文抽出のどちらを選択する必要がありますか?
simplehtmldomのプロの1つは、無効なhtmlのサポートですが、それ自体で十分ですか?
strip_tags
そのためには十分です。
あなたが言及した理由でおそらくsmiplehtmldomを使用する必要があり、strip_tagsは、script/styleブロック内に含まれるjavascriptやcssなどの非テキスト要素も残す可能性があります
表示されていない要素からテキストをフィルタリングすることもできます(inline style = display:none)
とは言うものの、htmlが十分に単純である場合、strip_tagsはより高速であり、同じタスクを実行します。
HTMLからテキストを抽出するのは難しいので、Html2Textのようなライブラリを使用するのが最善のオプションです。この目的のために特別に構築されました。
https://github.com/mtibben/html2text
composerを使用してインストールします。
composer require html2text/html2text
基本的な使用法:
$html = new \Html2Text\Html2Text('Hello, "<b>world</b>"');
echo $html->getText(); // Hello, "WORLD"
ページのプレーンテキストレンダリングが必要な場合は、strip_tagsの方が高速で簡単です。ただし、そのプロセス中にテキストを操作したい場合は、simplehtmldomの方が長期的にはより効果的です。
スラッシュを削除することもできますstripslashes()