2011-04-07 174 views
1

我有一个浏览器显示解码html实体的问题。 我试图显示来自WordPress博客的博客描述。文本在被保存在数据库之前被编码为html实体。因此,为了显示超链接,文本必须是html实体解码的,所以a-tag被正确渲染。html_entity_decode不解码

但是,当我尝试解码文本它仍然作为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手册,并尝试了不同的字符集和引用样式作为参数。但仍然没有运气。

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

回答

5

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

改为使用get_bloginfo

+0

关闭当然! Tack Emil! – Tjofras 2011-04-07 09:04:25

2

你应该阅读WordPress的手动:)

它明确指出它打印结果到浏览器中,使用get_bloginfo代替。 http://codex.wordpress.org/Function_Reference/bloginfo

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

+0

当然,谢谢! – Tjofras 2011-04-07 09:04:41

0

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

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