html_entity_decode does not decode


html_entity_decode does not 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手册,并尝试了不同的字符集和引用样式作为参数。但还是没有运气。

我做错了什么,有什么想法吗?

bloginfo函数不返回文本,而是直接回显文本。因此,你的"回声"实际上什么也回不到!

你应该阅读Wordpress手册:)

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

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

的返回值来对此进行测试。

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

如果它重新编码它们,您的html_entity_decode将简单地恢复到原始状态(已编码)。