我有这段代码,它应该首先将整个单词文件处理成一个数组,然后检查为文件中的任何单词传递的字符串。如果匹配,则替换为 *。
该文件类似于:
wordalex
wordjordan
wordjohn
....
不幸的是,我通过的句子没有以我期望的方式过滤。实际上,它根本没有发生任何事情。您能否查看给出的代码并提供帮助。
$comment = "the wordalex if this doesn't get caught!";
$filterWords = file('badwords.txt', FILE_IGNORE_NEW_LINES);
//print_r($filterWords);
$textToPrint = filterwords($comment,$filterWords );
echo $textToPrint;
function filterwords($text, $filterArray){
$filterCount = sizeof($filterWords);
for($i=0; $i<$filterCount; $i++){
$text = preg_replace('/\b'.$filterWords[$i].'\b/ie',"str_repeat('*',strlen('$0'))",$text);
}
return $text;
}
所以原句中实际上有吟游诗人词,但出于发布目的而被删除。
谢谢