範例:
第一步:在字串中搜尋有無敏感詞
int substr_count(string haystack,string needle)
substr_count() 函數檢索子串出現的次數,引數haystack是指定的字串,引數needle為指定的字元。
//定義敏感詞陣列 $array = array('罵人','骯髒','汙穢'); //定義包含敏感詞的字串 $mgstr = '這是包含罵人骯髒汙穢的話'; //利用迴圈判斷字串是否包含敏感詞 for($i = 0; $i <= count($array); $i++) { $count = substr_count($mgstr, $array); if($count > 0) { $info = $count; break; } } if($info > 0) { //有敏感字元 return true; }else{ //無敏感字元 return false; }
第二步:使用preg_replace()函數實現敏感詞的替換
preg_replace()函數執行一個正規表示式的搜尋和替換
mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )
//關鍵詞存放在.txt檔案中 <?php //自定義替換函數 function Replace($str, $filenam){ if(!($words = file_get_contents($filename))) { //將敏感詞語文字取出 die('檔案獲取失敗!'); } //取出成功,將字串改成小寫 $string = strtolower($str); $word = preg_replace('/[1,2,3]rn|rn/i','',$words); //字串中出現文字敏感詞,用特殊符號替換 $match = preg_replace('/'.$word.'/i','***',$string); return $match; } //定義包含敏感詞的字串 $content = '<a href="#">骯髒fsdf汙穢d 罵人</a>' //判斷是否替換成功 if($result = Replace($content, './words.txt')) { echo $result; echo '替換成功!'; }else { echo '替換失敗!'; } ?>
以上就是php實現特殊字元的替換操作的詳細內容,更多請關注TW511.COM其它相關文章!