2012-05-03 56 views
0

我正在使用php strip_tags()函數從我的文本區域輸入中刪除html標記,並刪除< script>標記以幫助防範腳本攻擊。如何讓PHP strip_tags去除HTML和腳本標記而不是XML?

無論如何,用戶往往需要輸入事先未知的XML標籤。但是,我的strip_tags函數也刪除了這些良性的xml標籤,這是不可接受的。

另外,我有時會把文件名。 <日期> .png(必須在那裏添加一個空格,因爲StackOverflow也將它刪除以及lol)來指示文件名或路徑的可變部分。在這種情況下,我最終得到的是在strip_tags運行後的filename..png。

任何幫助將不勝感激。

+0

因爲xml也使用標籤,所以不能。此外,它基本上會打敗字符串標籤的目的,因爲您仍然可以將JavaScript壓縮到任何未知標籤中。 – dqhendricks

回答

0

strip_tags()定義爲刪除所有HTML/XML標籤(第二個參數中指定的單獨標籤除外)。兩種類型的標籤之間沒有區別,也沒有區分,用作佔位符 - 所有這三個標籤看起來像strip_tags(),所以它將它們刪除。

0

不可能使strip_tags不刪除未知標籤。你可能想看看DOMDocument一個可行的選擇。