中文關鍵字過濾時使用的關鍵字文件爲utf-8編碼 格式爲key1|key2|key3|.... 解決中文和英文匹配的一些問題 /** * 被禁止的關鍵字檢測 * * @param string $string 要檢測的字符串 * @param string $fileName 屏蔽關鍵字文件 * @return bool */ function banwordCheck( $string, $fileName ) { if ( !($words = file_get_contents( $fileName )) ){ die('file read error!'); } $string = strtolower($string); $matched = preg_match('/'.$words.'/i', $string, $result); if ( $matched && isset($result[0]) && strlen($result[0]) > 0 ) { if ( strlen($result[0]) == 2 ){ $matched = preg_match('/'.$words.'/iu', $string, $result); } if ( $matched && isset($result[0]) && strlen($result[0]) > 0 ) { return true; }else{ return false; } }else{ return false; } } $content = '測試關鍵字'; if ( banwordCheck($content, './banwords.txt') ){ echo "matched! "; }else{ echo "no match! "; }