php垃圾邮件过滤器不使用通配符(星号)

php垃圾邮件过滤器不使用通配符(星号),php,wildcard,spam,Php,Wildcard,Spam,垃圾邮件发送者有问题,我创建了一个函数来过滤垃圾邮件。 然而,如果一个垃圾邮件发送者使用的是*S*P*a*M*(中间有星号),我不知何故无法将其过滤掉,当我试图这样将其添加到禁用词列表中时,奇怪的是现在每个“M”都被禁用了 function censor_spam($field_value) { global $setting; $spam = FALSE; $censored_array = explode(",", trim($setting['setting

垃圾邮件发送者有问题,我创建了一个函数来过滤垃圾邮件。 然而,如果一个垃圾邮件发送者使用的是
*S*P*a*M*
(中间有星号),我不知何故无法将其过滤掉,当我试图这样将其添加到禁用词列表中时,奇怪的是现在每个“
M
”都被禁用了

    function censor_spam($field_value) {
    global $setting;
    $spam = FALSE;
    $censored_array = explode(",", trim($setting['setting_banned_words']));
    foreach ($censored_array as $key => $value) {
        $trimvalue = trim($value);
        if (strpos($field_value, $trimvalue) !== false) {
            $spam = TRUE;
        }
    }
    return $spam;
}
星号是否会刺激反垃圾邮件功能


你知道我需要在函数中修改什么来修复吗?

str\u replace(“*”、“$field\u value)-然后运行您的检查。然而,“坏词”列表是相当有缺陷的。@MikeB我想这是一个解决方案,但是有一些负面的副作用,没有人可以再发布任何通配符了,它会被删除。这正是“坏词”解决方案的问题——它是脆弱的。你不会把它从他们的原始信息中漏掉。。就在你扫描它的时候。