2015-12-11 18 views
-1

有一個叫做strip_tags()的函數可以從輸入中去掉所有的標籤,我想知道是否有一個函數不是從輸入中剝離所有標籤,而是將它們轉換爲字符串,比如當我們縮進我們的代碼時,stackoverflow是如何實現的。如果沒有,我應該用什麼來代替?將標籤轉換爲PHP中的字符串

輸出:

斜體

需要輸出:

<i> italic </i> 
+0

它不會轉換爲字符串,它會轉義,因此它們不會被處理。使用'htmlspecialchars()'或類似的函數來實現。 –

回答

1

你想要的功能是http://php.net/manual/en/function.htmlspecialchars.php

代碼:

$string = '<i> italic </i>'; 
echo htmlspecialchars($string); 

演示:https://eval.in/483903

輸出:

&lt;i&gt; italic &lt;/i&gt; 

其中在瀏覽器將呈現爲:

<我>我talic </i >

+0

所以這和strip_tags()做同樣的事情,因爲它不允許用戶在我們的網站上執行腳本,對吧? – jessica

+0

這會將元素轉換爲它們的實體等價物。 Strip_tags實際上刪除了元素本身。儘管取決於您輸出的方式,但用戶仍然可以使用此方法注入XSS。引號可以用來關閉屬性,然後可以添加'onclick'等。 – chris85

+0

如果我們將這個與mysqli_real_escape_string結合起來會怎樣? – jessica

0

可以使用用htmlspecialchars()作爲評論說或做手工。

$str = "<i>something</i>"; 

echo str_replace("<", "&lt;", $str); 
1

您可以使用html <pre>標記。