我需要你的辅助相关的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>
或任何标记的正确方法是什么。
任何帮助都值得赞赏。
由于
答案 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/>
以及......
$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;