preg_match 与外部 txt 文件

发布于 2024-12-11 19:13:44 字数 469 浏览 0 评论 0原文

我有一个 .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 部分吗?谢谢。

I have a .txt file that holds a lot of forbidden words in a forum, with the expression like:

//filterwords.txt
XXX
YYY
ZZZ

and then, I would like to use preg_match to check incoming text $str with these words; if those forbidden words are not included, we can do something; otherwise, we do another thing... I am not sure about the expression, and I just know:-

$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;
  }
}

Could experts teach me how to write the preg_match part? thankyou.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

深者入戏 2024-12-18 19:13:44

怎么样:

<?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";
    }
?>

PS 假设您有要检查 $str var 的文本

How about this:

<?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. That's assuming that you have the text to check in the $str var

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文