PHP: REG_EBRACK-Fehlermeldung

slaughter89

Mitglied
ich, hier ist ne Funktion, welche Spam-Einträge verhindern soll:
PHP:
function spam_kontrolle($text) {
	global $config;
	if ($config['spam_words'] != "" ) {
		$word_list = explode("\r\n", $config['spam_words']);
		for ($i=0;$i < count($word_list);$i++) {
			if ($word_list[$i] != "") { 
				if (eregi($word_list[$i],$text)){ return true; }
			}
		}
	}
	return false;
}

Leider bekommt da unter gewissen Umständen eine Fehlermeldung:
Warning: eregi() [function.eregi]: REG_EBRACK in

Wie ist das erklärbar und was kann man dagegen tun?
 
Die eregi Funktion arbeitet intern mit einem regulären Ausdruck, dabei muss darauf geachtet werden, dass einige Zeichen escaped werden, sprich, einigen Zeichen muss ein Backslash vorangestellt werden, damit es nicht zur besagten Fehlermeldung kommt.
Ich würde es an Deiner Stelle ein wenig anders lösen:
PHP:
function spam_kontrolle($text) {
    global $config;
    if ($config['spam_words'] != "" ) {
        $word_list = explode("\r\n", $config['spam_words']);
        for ($i=0;$i < count($word_list);$i++) {
            if ($word_list[$i] != "") { 
                if (stripos($text, $word_list[$i]) !== false){ return false; }
            }
        }
    }

    return true;
}
 
Zuletzt bearbeitet:
Zurück