Pergunta

Eu preciso do seu PHP relacionado à sua assistência. No PHP, quero permitir HTML <img> Somente tags, tentei a função interna do PHP strip_tags() Mas não está me dando a saída de que preciso. Por exemplo, no código a seguir strip_tags() Permite tags IMG, mas junto com o texto.

$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>");

Qual seria a maneira correta de apenas permitir <img> ou qualquer tag apenas da função ou variável. Qualquer ajuda não será apreciada.

Obrigado

Foi útil?

Solução

Isso pode ser devido à tag IMG não fechada em seu código. Tente isso

$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>");

Outras dicas

strip_tags() Não funciona dessa maneira que você quer que isso se comporte. Se fornecidos com um segundo argumento, as tags listadas poderão fazer parte da string resultante - exceto aquelas que não estão listadas. E não filtrará o texto interno.

Se você quiser extrair <img/> Apenas elementos, nem pense em usar um regex. Use um analisador dom para isso:

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

Exclua tags HTML sem <img> e <a> e <br/> e <hr/> e ...

$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;
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top