我在解码浏览器显示的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. <a href="">READ MORE</a>')); //output: Display a hyper link. <a href="">READ MORE</a>
我查看了php手册,并尝试了不同的字符集和引用样式作为参数。但仍然没有运气。
我做错了什么,有什么想法?
答案 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
将恢复原状(已编码)。