我試圖找到一個正則表達式來刪除所有html特殊字符(主要是&,<,>),但保持html標記完好無損。正則表達式:保留HTML標記,只刪除html特殊字符
我從數據庫中得到這些信息,所以我不能確定像<和>這樣的字符被替換爲& gt;和& lt;
我可以設法取代&與PHP中的正則表達式如下它<:
$Value = preg_replace('/<(?!#?\/?[a-zA-Z0-9]+>)/','',$Value);
$Value = preg_replace('/&(?!#?[a-zA-Z0-9]+;)/','&',$Value);
我現在唯一的麻煩修復>標籤,因爲我不得不使用查找隱藏,這不允許非固定長度的RegEx。
$Value = preg_replace('/(?<!<[a-zA-Z0-9]+)>/','',$Value);
任何想法?
問候 - 托馬斯
哦,不,請不要再次 – zerkms 2012-01-03 10:43:20
http://php.net/manual/en/function.htmlspecialchars.php應該幫助你。 – lfxgroove 2012-01-03 10:43:33
htmlspecialchars也會替換標籤。 – 2012-01-03 10:44:52