html_entity_decode не декодирует - PullRequest
1 голос
/ 07 апреля 2011

У меня проблема с декодированием 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 и попробовал разныекодировки и стили кавычек в качестве аргументов.Но все равно не повезло.

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

Ответы [ 3 ]

5 голосов
/ 07 апреля 2011

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

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

2 голосов
/ 07 апреля 2011

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

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

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

0 голосов
/ 07 апреля 2011

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

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

...