Декодирование полного текста с помощью PHP

У меня есть вывод, который мне нужно декодировать, он передается на страницу PHP как таковой:

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

Когда я запускаю html_entities_decode() или htmlspecialchars_decode(), он выводит его как обычный текст, а не HTML. Кроме того, теги &amp;lt;strong&amp;gt; выводятся в исходном состоянии, а не преобразуются в <strong>.

Я искал, но ничего не нашел. Любая помощь будет принята с благодарностью.


person Andrew Klatzke    schedule 18.04.2013    source источник


Ответы (2)


Пытаться:

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

Вероятно, вы где-то дважды закодировали объекты. С PHP 5.4.5 работает.

person BlitZ    schedule 18.04.2013
comment
Посмотрю на это, когда вернусь домой и отчитаюсь. - person Andrew Klatzke; 18.04.2013
comment
Теперь он исправляет все теги, но по-прежнему выводит обычный текст, а не фактический html. например вывод strong вместо полужирного текста. - person Andrew Klatzke; 19.04.2013
comment
Попробуйте header('Content-Type: text/html'). Ваш браузер неправильно распознал ответ. Если он находится в теле страницы <html></html> и исключен из тега типа <textarea></textarea> или <pre></pre>, то он уже должен работать. Мои Chrome 26 уже распознают теги. - person BlitZ; 19.04.2013

Использовать это.

<?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");
?>
person Bharat Chodvadiya    schedule 18.04.2013
comment
@AndrewKlatzke теперь отредактируйте мой ответ. если вы хотите вернуть данные html, попробуйте это. - person Bharat Chodvadiya; 18.04.2013