在php中要過濾一些特殊字符或非法字符我們可以有很多的辦法,像正則表達式str_replace就是一個不錯的辦法,像回車,空格,換行都可以用它來解決。
近負責的一個系統模塊終於可以說是接近尾聲了,余下的工作就是配合測試們測試和修改了。
趁著這個相對比較閒的時間裡,偷偷寫幾篇博文記錄下這個時間段遇到的問題和我的解決方案(還是說解決方法吧)。
好了,廢話不多說,進入正題。
有這種需求的一般都是去小偷程序那些,像去掉原頁面的鏈接什麼的。不過,我遇到的是要導出制定頁面到word,安全起見需要去掉js代碼塊。
先上代碼
代碼如下 復制代碼
$searchRegex = array(
'/<as*.*?s*>(s*.*?s*)</a>/i', // 超鏈接
'/<scripts*.*?s*>[sS]*?</script>/i', // JS腳本代碼
);
$replaceStr = array(
'$1',
''
);
$content = preg_replace($searchRegex, $replaceStr, $content);
php的話這個就比較簡單了,就是使用了preg_replace這個函數啦,不多說。。。需要注意的是兩個正則吧,這個才是關鍵。
$regexForLink = '/<as*.*?s*>(s*.*?s*)</a>/i'; // 超鏈接
$regexForJS = '/<scripts*.*?s*>[sS]*?</script>/i'; // JS腳本代碼
如果要過濾HTML代碼、空格、回車換行符
代碼如下 復制代碼
function DeleteHtml($str)
{
$str = trim($str);
$str = strip_tags($str,"");
$str = ereg_replace("t","",$str);
$str = ereg_replace("rn","",$str);
$str = ereg_replace("r","",$str);
$str = ereg_replace("n","",$str);
$str = ereg_replace(" "," ",$str);
return trim($str);
}
過濾html中所有html標簽可以使用strip_tags() 函數剝去 HTML、XML 以及 PHP 的標簽。
strip_tags(string,allow)
好了,就這麼多,希望下一次有幫助吧。