2015-01-31 170 views
0

当我在这段代码中使用 “用htmlspecialchars”:htmlspecialchars();不工作

<?php 
$test = htmlspecialchars("<a>w3s.com</a>"); 
echo $test; 
?> 

我想看到的HTML实体,如:

&quot;&gt;&lt;script&gt;alert - for example. 

但我看到这一点:

<a>w3s.com</a> 

而在浏览器中,HTML标记不显示HTML实体。 请帮忙。谢谢 (很抱歉,如果我的话建筑物的sentense建设是怪异。)

+1

'htmlspecialchars(htmlspecialchars(“ w3s.com”))'? – 2015-01-31 22:53:38

+0

谢谢。这种方法比其他方法简单) – hidd 2015-02-01 20:28:59

回答

1

如果您希望浏览器显示的特殊字符,你应该写这样的事情:

<?php 
$test = htmlspecialchars(str_replace(array("'", "\""), "", 
    htmlspecialchars("<a>w3s.com</a>"))); 
echo $test; 
?> 

输出:&lt;a&gt;w3s.com&lt;/a&gt;

通过这种方式,您可以跳过特殊字符以便让浏览器绘制它们

如果您想查看浏览器呈现的HTML实体,只需编写HTML代码,如下所示:

<?php 
$test = '<a href="http://w3s.com">Enter here</a>'; 
echo $test; 
?> 

输出:Enter here

我想你忘了把href属性,所以它并没有显示它作为一个锚。欲了解更多信息,请访问this w3schools' article

+0

谢谢。这行得通。但是,如果我想要在地址行转换HTML代码中的代码我写: '<?php $ test = htmlspecialchars(str_replace(array(“'”,“\”“),”“, htmlspecialchars(” w3s “ echo $ test; ?>'但它不起作用,请再次帮助我 – hidd 2015-02-01 18:57:27

+0

我现在明白了,我想你只是忘记了'href'属性。这个帖子,检查是否解决了你的问题 – juanscolari 2015-02-01 19:44:48

+0

不,我想要的是当我输入地址行伤害码时,他必须像这样转换字符:'" > <脚本> alert' – hidd 2015-02-01 20:35:24