2015-04-14 41 views
3

我打印與php的聊天記錄。由於它是一個聊天日誌,它可以有用戶輸入。刪除一個開放的HTML評論與PHP

我想阻止用戶輸入的任何<!--註釋掉我的文件的其餘部分,但由於某種原因,我的代碼不起作用。

如果在txt文件中有一個<!--開放標籤,它將註釋掉其餘的代碼。 如果文件中有<!-- Text -->,那麼「文本」未被回顯。

我很茫然,因爲帶標籤應該解決這個問題....

我懷疑我在我的代碼,允許這有一個錯誤。

while(!feof($lfile)) { 
$line = fgetss($lfile); 
$lineclean = strip_tags($line); 
    echo $lineclean . "<br>"; 
} 

對於看起來髒兮兮的代碼,我表示歉意,我將其擴展爲故障排除。

+1

Strip_tags適合我。 '這是文字
' from'$ lineclean = strip_tags('this is text <! - comment - >');'你可以在輸入中發佈樣本嗎? – chris85

+0

我在想這個問題是從哪裏來的,但我不確定。 如果您注意到,strip函數正在使用來自fgetss的直接輸入。我將fgetss更改爲fget,它不再可以用一個開放的html註釋標記註釋整個文件,但它仍然評論該行的其餘部分。 – Ignition

+0

如果您想要評論的內容沒有評論標籤本身,我不認爲strip_tags會爲你工作 - 「*注意: HTML評論和PHP標籤也被剝離。這是硬編碼,不能改變與allowable_tags。*「 - [從手冊](http://php.net/manual/en/function.strip-tags.php) –

回答

0

你可以通過所有的東西通過htmlentities($line, ENT_QUOTES)和一切都會被完全按照它被讀取。這也將防止XSS攻擊和其他惡意的字符串。