PHPプログラムに関する各種メモ書き

PHPで特定のHTMLタグを取り除く

● PHPで特定のHTMLタグを取り除く

PHPで特定のHTMLタグを取り除いて、プレーンなテキストにするには次のパッケージを利用すると簡単にできます。

● athoshun/html-filter

https://packagist.org/packages/athoshun/html-filter

1. athoshun/html-filterのインストール

composer require athoshun/html-filter

2. 使い方

$config に残すタグや属性をセットして $filter で除去します。
<?php

$config = new \AthosHun\HTMLFilter\Configuration();
$config->allowTag("p")
       ->allowAttribute("a", "title")
       ->allowAttribute("a", "href", "|^https?://.*\$|");

$filter = new \AthosHun\HTMLFilter\HTMLFilter();

$html = <<<HTML
Lorem ipsum <em>dolor</em> sit amet
<p>
    Consectetur <a href="http://example.com" title="hey!">adipisicing</a>
    <a href="javascript:alert(42)" onclick="alert(42)">elit</a>.
</p>
HTML;

print $filter->filter($config, $html);

3. 結果

Lorem ipsum dolor sit amet
<p>
    Consectetur <a href="http://example.com" title="hey!">adipisicing</a>
    <a>elit</a>.
</p>
No.1391
12/13 09:23

edit