html_entity_decode无法解码

时间:2011-04-07 08:51:23

标签: php wordpress html-encode

我在解码浏览器显示的html实体时遇到问题。 我正在尝试从wordpress博客中显示博客描述。在将文本保存在数据库中之前,文本正在进行html实体编码。因此,为了显示超链接,文本必须被html实体解码回来,因此正确地呈现了a-tag。

但是当我尝试解码文本时,它仍然是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 个答案:

答案 0 :(得分:5)

bloginfo函数不返回文本,它直接回显它。因此,你的“回声”实际上并没有回应!

改为使用get_bloginfo

答案 1 :(得分:2)

你应该阅读Wordpress手册:)

它清楚地表明它将结果打印到浏览器,改为使用get_bloginfo。 http://codex.wordpress.org/Function_Reference/bloginfo

为了清楚起见,它不起作用,因为bloginfo回显了信息,它根本不返回它。您可以通过检查(通过使用var_dump)bloginfo的返回值来测试它。

答案 2 :(得分:0)

您确定bloginfo不会再次对字符进行编码吗?

如果它重新编码,您的html_entity_decode将恢复原状(已编码)。