php清除html中超鏈接/JS腳本/回車
來源:程序員人生 發(fā)布時(shí)間:2014-04-20 17:07:17 閱讀次數(shù):3652次
在php中要過濾一些特殊字符或非法字符我們可以有很多的辦法,像正則表達(dá)式str_replace就是一個(gè)不錯(cuò)的辦法,像回車,空格,換行都可以用它來解決。
近負(fù)責(zé)的一個(gè)系統(tǒng)模塊終于可以說是接近尾聲了,余下的工作就是配合測(cè)試們測(cè)試和修改了。
趁著這個(gè)相對(duì)比較閑的時(shí)間里,偷偷寫幾篇博文記錄下這個(gè)時(shí)間段遇到的問題和我的解決方案(還是說解決方法吧)。
好了,廢話不多說,進(jìn)入正題。
有這種需求的一般都是去小偷程序那些,像去掉原頁面的鏈接什么的。不過,我遇到的是要導(dǎo)出制定頁面到word,安全起見需要去掉js代碼塊,先上代碼:
- $searchRegex = array(
- '/<as*.*?s*>(s*.*?s*)</a>/i',
- '/<scripts*.*?s*>[sS]*?</script>/i',
- );
- $replaceStr = array(
- '$1',
- ''
- );
- $content = preg_replace($searchRegex, $replaceStr, $content);
php的話這個(gè)就比較簡(jiǎn)單了,就是使用了preg_replace這個(gè)函數(shù)啦,不多說。。。需要注意的是兩個(gè)正則吧,這個(gè)才是關(guān)鍵,代碼如下:
- $regexForLink = '/<as*.*?s*>(s*.*?s*)</a>/i';
- $regexForJS = '/<scripts*.*?s*>[sS]*?</script>/i';
如果要過濾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標(biāo)簽可以使用strip_tags() 函數(shù)剝?nèi)?HTML、XML 以及 PHP 的標(biāo)簽。
strip_tags(string,allow)
好了,就這么多,希望下一次有幫助吧。
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)