Cet article analyse le principe de filtrage des mots dans ucenter. Partagez-le avec tout le monde pour votre référence, comme suit :
Filtrer la liste de mots
Créer les données du cache :
//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; }
Méthode d'appel :
$_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); }
Chaque paramètre de preg_replace() (sauf limite) peut être un tableau. Si le motif et le remplacement sont des tableaux, leurs clés seront traitées dans l'ordre dans lequel elles apparaissent dans le tableau. Ce n'est pas nécessairement le même que l'ordre numérique de l'indice. Si un index est utilisé pour identifier quel modèle doit être remplacé par quel remplacement, le tableau doit être trié avec ksort() avant d'appeler preg_replace().
J'espère que cet article sera utile à tout le monde dans la programmation PHP.
Pour plus d'articles liés à l'analyse des principes de filtrage de mots dans ucenter, veuillez faire attention au site Web PHP chinois !