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)


arrow_upward
5
arrow_downward

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

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

person Emil Vikström    schedule 07.04.2011

arrow_upward
2
arrow_downward

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

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

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

person TJHeuvel    schedule 07.04.2011

arrow_upward
0
arrow_downward

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

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

person Albireo    schedule 07.04.2011