preg_match与外部txt文件

时间:2011-10-25 12:10:47

标签: php regex preg-match

我有一个.txt文件,在论坛中包含很多禁用词,表达方式如下:

// filterwords.txt
XXX
YYY
ZZZ

然后,我想使用preg_match来检查带有这些单词的传入文本$ str;如果不包括那些禁止的话,我们可以做点什么;否则,我们做另一件事......我不确定表达方式,我只知道: -

$filter_word = file("filterwords.txt")

for ($i=0; $i< count($filter_word);$i++)
{
  if(!preg_match($filter_word[$i],$str))
  {
    echo "not ok!";
    exit;
  }
  else
  {
    echo "ok!!";
    exit;
  }
}

专家可以教我如何编写preg_match部分吗?三江源。

1 个答案:

答案 0 :(得分:1)

这个怎么样:

<?php
    $file = file_get_contents('filterwords.txt');
    $words = preg_split("#\r?\n#", $file, -1, PREG_SPLIT_NO_EMPTY);

    #Added to escape metacharacters as mentioned by @ridgerunner
    $words = array_filter("preg_quote", $words);

    $pattern = "#\b(". implode('|', $words) . ")\b#";

    if(preg_match($pattern, $str))
    {
        echo "bad word detected";
    }
?>

P.S。假设你有文本来检查$ str var