這是我用來過濾我的網站上的壞詞。用它來滿足你的喜好。它應該指向正確的方向,因爲它只會過濾「我是壞字」而不是「iamabadword」。
function filterBadWords($str) {
$badWordsFile = "badwords.txt";
$badFlag = 0;
if(!is_file($badWordsFile)) {
echo "ERROR: file missing: ".$badWordsFile;
exit;
}
else {
$badWordsFH = fopen($badWordsFile,"r");
$badWordsArray = explode("\n", fread($badWordsFH, filesize($badWordsFile)));
fclose($badWordsFH);
}
foreach ($badWordsArray as $badWord) {
if(!$badWord) continue;
else {
$regexp = "/\b".$badWord."\b/i";
$badword_add_last_letter = $badWord.substr($badWord, -1);
$regexp_add_last_letter = "/\b".$badword_add_last_letter."\b/i";
if(preg_match($regexp,$str)) $badFlag = 1;
if(preg_match($regexp_add_last_letter,$str)) $badFlag = 1;
}
}
if(preg_match("/\[url/",$str)) $badFlag = 1;
return $badFlag;
}
和文件badwords.txt只是看起來像這樣的文件:
badword1
badword2
badword3
編輯:
如果您只是想字HOST,然後使用此功能:
function filterString($str) {
if(preg_match("/\bhost\b/i",$str)) return true;
return false;
}
你爲什麼不創建的屏蔽詞的功能,並使用'strpos' ? – 2013-05-09 02:47:07