PHP разрешает только теги img - PullRequest
2 голосов
/ 25 ноября 2010

Мне нужна твоя помощь, связанная с 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 ]

5 голосов
/ 25 ноября 2010

Это может быть связано с тем, что в вашем коде нет закрывающего тега 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>");
2 голосов
/ 25 ноября 2010

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));
1 голос
/ 27 июня 2013

удалить теги HTML без <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;
...