2015-01-31 57 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