php實現特殊字元的替換操作

2020-07-16 10:06:00
前言:作為一名phper,對於字串的操作是必須要掌握的,因此,我們就會接觸到如何替換或者遮蔽字串中的敏感詞問題,接下來,就為大家介紹一下替換的方法。文章僅供參考,謝謝!

範例:

第一步:在字串中搜尋有無敏感詞

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其它相關文章!