2

スクレイピングしているWebサイトから次のものがありますが、残念ながらコンテンツにはいくつかのフォントタグも含まれており、将来的に他のインラインフォーマットが含まれる可能性があります. これを行うためにPHPQueryを使用していますが、PHPのみのソリューションも機能します。

<p>
<font
color="#cc0000">
    <font
    color="#000000">Content</font>
        </font>
</p>
<p>Content</p>
<p>
    <font
    color="#cc0000">Content I wish to keep but font should be removed</font>
</p>
<p>
    <font
    color="#cc0000">Content I wish to keep but font should be removed</font>
</p>
<p>
    <font
    color="#cc0000">Content I wish to keep but font should be removed</font>
</p>
<p>
    <font
    color="#cc0000">Content I wish to keep but font should be removed</font>
</p>
<p>
    <font
    color="#000000">Content I wish to keep but font should be removed</font>
</p>
<p>Content</p>
</div>
4

3 に答える 3

4

strip_tags()を使用します。

strip_tags ($str, '<p><div>');

この行は、P と DIV 以外のすべてのタグを削除します。2 番目の引数に許容可能なタグを追加できます。

php.net の例

 <?php
 $text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
 echo strip_tags($text);
 echo "\n";

 // Allow <p> and <a>
 echo strip_tags($text, '<p><a>');
 ?>

上記の例では、次のように出力されます。

Test paragraph. Other text
<p>Test paragraph.</p> <a href="#fragment">Other text</a>
于 2013-06-13T12:30:17.043 に答える
2

コンテンツが変数にあると仮定します。

$content = strip_tags( $str, '<p><div>' );
于 2013-06-13T12:30:48.937 に答える