In diesem Artikel wird das Wortfilterprinzip in ucenter analysiert. Geben Sie es wie folgt als Referenz an alle weiter:
Wortliste filtern
Cache-Daten erstellen:
//private function _get_badwords() { $data = $this->db->fetch_all("SELECT * FROM ".UC_DBTABLEPRE."badwords"); $return = array(); if(is_array($data)) { foreach($data as $k => $v) { $return['findpattern'][$k] = $v['findpattern']; $return['replace'][$k] = $v['replacement']; } } return $return; }
Aufrufmethode:
$_CACHE['badwords'] = $this->base->cache('badwords'); if($_CACHE['badwords']['findpattern']) { $subject = @preg_replace($_CACHE['badwords']['findpattern'], $_CACHE['badwords']['replace'], $subject); $message = @preg_replace($_CACHE['badwords']['findpattern'], $_CACHE['badwords']['replace'], $message); }
Jeder Parameter von preg_replace() (außer limit) kann ein Array sein. Wenn sowohl Muster als auch Ersetzung Arrays sind, werden ihre Schlüssel in der Reihenfolge verarbeitet, in der sie im Array erscheinen. Dies entspricht nicht unbedingt der numerischen Reihenfolge des Index. Wenn ein Index verwendet wird, um zu identifizieren, welches Muster durch welche Ersetzung ersetzt werden soll, sollte das Array vor dem Aufruf von preg_replace() mit ksort() sortiert werden.
Ich hoffe, dass dieser Artikel für alle hilfreich ist, die sich mit PHP-Programmierung befassen.
Weitere Artikel zur Analyse der Wortfilterprinzipien in ucenter finden Sie auf der chinesischen PHP-Website!