Pergunta

I have output that I need to be decoded, it's passed into the PHP page as such:

<img src='http://freetopwallpaper.com/wp-content/gallery/puppy-pic/puppy wallpaper-hd-19.jpg' class='blog-image' />Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi augue lorem, semper eget varius non, aliquam vel felis. Aliquam erat volutpat. Suspendisse pellentesque, ipsum sed vulputate consequat, ligula nisi tincidunt lacus, eget pretium sapien felis sed arcu. Vivamus ligula leo, interdum in vestibulum eget, malesuada nec diam. Mauris interdum metus vel purus dapibus non feugiat risus ultricies. Morbi semper convallis purus at varius. Mauris et lacinia lorem. Quisque id lacus sem cartomizer.

<strong>Proin facilisis lacus in nisi laoreet rutrum. Praesent ligula magna, interdum gravida egestas a, posuere at ante. Sed est neque, rhoncus et mattis in, cursus at risus. Sed in quam purus. Mauris vitae dui est, quis consequat lacus. Proin mollis congue erat in adipiscing. Quisque ultricies pulvinar fringilla. Cras vitae quam neque. Fusce mattis elit nec lacus volutpat atomizer pretium fermentum sed nisl. Proin sed urna non erat blandit feugiat nec non ante. Fusce eu diam quis tellus aliquam sodales. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Morbi vehicula leo ut tellus pulvinar vulputate. Donec imperdiet blandit fringilla.</strong>

When I run either html_entities_decode() or htmlspecialchars_decode() It's outputting it as plain text rather than HTML. In addition, the &amp;lt;strong&amp;gt; tags are output in their original status rather than being converted into <strong>s.

I've searched, but haven't found anything. Any help would be greatly appreciated.

Foi útil?

Solução

Try:

<?php
$buffer = <<<STR
&lt;img src=&#039;http://freetopwallpaper.com/wp-content/gallery/puppy-pic/puppy wallpaper-hd-19.jpg&#039; class=&#039;blog-image&#039; /&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi augue lorem, semper eget varius non, aliquam vel felis. Aliquam erat volutpat. Suspendisse pellentesque, ipsum sed vulputate consequat, ligula nisi tincidunt lacus, eget pretium sapien felis sed arcu. Vivamus ligula leo, interdum in vestibulum eget, malesuada nec diam. Mauris interdum metus vel purus dapibus non feugiat risus ultricies. Morbi semper convallis purus at varius. Mauris et lacinia lorem. Quisque id lacus sem cartomizer.

&amp;lt;strong&amp;gt;Proin facilisis lacus in nisi laoreet rutrum. Praesent ligula magna, interdum gravida egestas a, posuere at ante. Sed est neque, rhoncus et mattis in, cursus at risus. Sed in quam purus. Mauris vitae dui est, quis consequat lacus. Proin mollis congue erat in adipiscing. Quisque ultricies pulvinar fringilla. Cras vitae quam neque. Fusce mattis elit nec lacus volutpat atomizer pretium fermentum sed nisl. Proin sed urna non erat blandit feugiat nec non ante. Fusce eu diam quis tellus aliquam sodales. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Morbi vehicula leo ut tellus pulvinar vulputate. Donec imperdiet blandit fringilla.&amp;lt;/strong&amp;gt;
STR;

echo htmlspecialchars_decode(htmlspecialchars_decode($buffer, ENT_QUOTES));
?>

Probably you've double-encoded entities somewhere. As of PHP 5.4.5 it works.

Outras dicas

Use this.

<?php
$btest = '&lt;img src=&#039;http://freetopwallpaper.com/wp-content/gallery/puppy-pic/puppy wallpaper-hd-19.jpg&#039; class=&#039;blog-image&#039; /&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi augue lorem, semper eget varius non, aliquam vel felis. Aliquam erat volutpat. Suspendisse pellentesque, ipsum sed vulputate consequat, ligula nisi tincidunt lacus, eget pretium sapien felis sed arcu. Vivamus ligula leo, interdum in vestibulum eget, malesuada nec diam. Mauris interdum metus vel purus dapibus non feugiat risus ultricies. Morbi semper convallis purus at varius. Mauris et lacinia lorem. Quisque id lacus sem cartomizer.
&amp;lt;strong&amp;gt;Proin facilisis lacus in nisi laoreet rutrum. Praesent ligula magna, interdum gravida egestas a, posuere at ante. Sed est neque, rhoncus et mattis in, cursus at risus. Sed in quam purus. Mauris vitae dui est, quis consequat lacus. Proin mollis congue erat in adipiscing. Quisque ultricies pulvinar fringilla. Cras vitae quam neque. Fusce mattis elit nec lacus volutpat atomizer pretium fermentum sed nisl. Proin sed urna non erat blandit feugiat nec non ante. Fusce eu diam quis tellus aliquam sodales. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Morbi vehicula leo ut tellus pulvinar vulputate. Donec imperdiet blandit fringilla.&amp;lt;/strong&amp;gt;';

echo $b = html_entity_decode($btest,ENT_QUOTES,"ISO-8859-1");
?>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top