PHP只允许使用img标签

时间:2010-11-25 06:46:24

标签: php weblogic strip-tags

我需要你的辅助相关的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>或任何标记的正确方法是什么。 任何帮助都值得赞赏。

由于

3 个答案:

答案 0 :(得分: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>");

答案 1 :(得分:2)

strip_tags()无法按照您希望的方式运行。如果提供了第二个参数,则列出的变量可以作为结果字符串的一部分 - 除了未列出的变量。并且它不会过滤掉内部文本。

如果您只想提取<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));

答案 2 :(得分:1)

删除没有<img><a>以及<br/><hr/>以及......

的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;