2010-07-22 74 views
0

我有一个问题,获得存储在一个PHP数组一些HTML值:关闭HTML解释在PHP

$data = array("Name"=>'<div style="color:red"></div>'); 
while(list($key,$val) = each($data)){ 
    print_r($key." => ".$val) ; 
} 

的问题是,该脚本(把里面的html标签)返回:

Name => 
Foo Bar 

因此,div(所以HTML)被解释。 我想展示的是价值,而不是它的解释。所以,我想要的结果是:

Name => <div style="color:red">Foo Bar</div> 

有没有办法做到这一点?

非常感谢,

问候。

回答

6

如果要显示存储在阵列中的实际HTML,则需要使用htmlentities()htmlspecialchars()将特殊字符转换为HTML实体。即。您需要将<转换为&lt;才能在页面上正确显示字符。

print_r($key." => ".htmlentities($val)) ; 

htmlentities()转换所有具有与HTML实体等效的字符。 htmlspecialchars()只是转换要领。

4

这是浏览器解释HTML,而不是PHP。只需发送内容类型为text/plain的页面,浏览器就不会尝试解释它。

+0

是的,但它会显示HTML源代码...有没有一种更干净的方式来做到这一点? – Zakaria 2010-07-22 09:34:32

+0

@Zakarai - 你想干什么?解析HTML,然后去掉任何不是文本节点的东西?! – Quentin 2010-07-22 09:47:04

1

你可能想要htmlspecialchars你的输出,所以HTML标签被实体取代。