2

私はあなたの助けが必要です関連のphp. PHP では、HTML タグのみを許可したいので、<img>PHP の組み込み関数strip_tags()を試しましたが、必要な出力が得られません。たとえば、次のコードstrip_tags()では img タグを許可していますが、テキストも許可しています。

$img = "<img src='/img/fawaz.jpg' alt= ''> <br /> <p> This is a detailed paragraph about Fawaz and his mates.</p>";
echo strip_tags($img , "<img>");

<img>関数または変数からのみタグを許可する適切な方法は何でしょうか。どんな助けでも大歓迎です。

ありがとう

4

3 に答える 3

5

これは、コード内の img タグが閉じていないことが原因である可能性があります。これを試して

$img = "<img src='/img/fawaz.jpg' alt= '' /> <br /> <p> This is a detailed paragraph about Fawaz and his mates.</p>";
echo strip_tags($img , "<img>");
于 2010-11-25T06:52:12.820 に答える
2

strip_tags()あなたが望むように動作しません。2 番目の引数が指定されている場合、リストされたタグは、結果の文字列の一部になることができます (リストされていないタグを除く)。また、内部テキストは除外されません。

要素のみを抽出したい場合は<img/>、正規表現を使用することさえ考えないでください。そのためにDOMパーサーを使用します。

libxml_use_internal_errors(true);
$doc=new DOMDocument;
$html=$doc->loadHTML('<img src="/img/fawaz.jpg" alt= ""> <br /> <p> This is a
detailed paragraph about Fawaz and his mates.</p>');
$path=new DOMXPath($doc);
foreach ($path->query('//img') as $found)
    var_dump($doc->saveXML($found));
于 2010-11-25T07:07:22.497 に答える
1

<img>and <a>and <br/>and <hr/>and ...なしの HTML タグを削除します。

$img = "
        <img src='/img/fawaz.jpg' alt= '' />
        <br /><br/>
        <hr/>
        <p> This is a detailed paragraph about Fawaz and his mates.</p>
        <a href='cft'>123</a>
        ";
$img = strip_tags($img , "<img>|<a>|<br>|<hr>");
echo $img;
于 2013-06-27T13:28:42.900 に答える