html_entity_decode не декодирует

У меня проблема с декодированием html-объектов для отображения в браузере. Я пытаюсь отобразить описание блога из блога WordPress. Текст кодируется в формате html перед сохранением в БД. Таким образом, чтобы отобразить, например, гиперссылку, текст должен быть html-объектом, декодированным обратно, поэтому a-тег отображается правильно.

Но когда я пытаюсь декодировать текст, он все равно выходит как html-объекты.

Вывод перед декодированием:

echo(bloginfo( 'description' )); //output: Display a hyper link. <a href="">READ MORE</a>

Вывод при декодировании. И вот моя проблема. Он до сих пор не расшифрован! Проверьте вывод.

echo(html_entity_decode(bloginfo( 'description' ))); //output: Display a hyper link. <a href="">READ MORE</a>

И когда я пытаюсь жестко закодировать текст для декодирования, он работает!

echo(html_entity_decode('Display a hyper link. &lt;a href=""&gt;READ MORE&lt;/a&gt;')); //output: Display a hyper link. <a href="">READ MORE</a>

Я просмотрел руководство по php и попробовал разные кодировки и стили кавычек в качестве аргументов. Но все равно не повезло.

Что я делаю не так, есть идеи?


person Tjofras    schedule 07.04.2011    source источник


Ответы (3)


Функция bloginfo не возвращает текст, она воспроизводит его напрямую. Таким образом, ваше "эхо" на самом деле ничего не будет эхом!

Вместо этого используйте get_bloginfo.

person Emil Vikström    schedule 07.04.2011

Вы должны прочитать руководство Wordpress :)

В нем четко указано, что он выводит результаты в браузер, вместо этого используйте get_bloginfo. http://codex.wordpress.org/Function_Reference/bloginfo

Для ясности, это не работает, потому что bloginfo эхо-информация, она вообще не возвращает ее. Вы могли бы проверить это, проверив (используя var_dump) возвращаемое значение bloginfo.

person TJHeuvel    schedule 07.04.2011

Вы уверены, что bloginfo не кодирует символы в другой раз?

Если он перекодирует их, ваш html_entity_decode просто вернется к своему исходному состоянию (которое закодировано).

person Albireo    schedule 07.04.2011