" ou " . -------- « Lieu la substitution dans une variable pour être utilisé plus tard lors du filtrage des gros mots . Par exemple :
< php $ substitut = "-----" ;
magasin Bad liste de mots dans un tableau
Lire le " mauvais mot " liste à partir du disque et de le stocker dans une structure de données . Vous pourriez envisager de créer un tableau et le stockage de chaque «mauvais mot » comme un élément du tableau , telles que:
$ bad_word [ 0] = " thisbadword " ; $ bad_word [ 1] = " thatbadword " ; ;
Bien que ce type de structure fonctionne, il est inefficace parce que vous devez rechercher l'ensemble du réseau de "gros mots " pour chaque mot que vous vérifiez contre la liste. Pour une façon plus facile d'accomplir cette tâche , créer une table de hachage . Concevoir un tableau associatif et stocker chaque «mauvais mot » comme la clé du tableau . Assigner quelque chose comme valeur , comme «1» ou «vrai». Pour déterminer si un mot est dans la liste , il vous suffit de référencer la clé du tableau , plutôt que de rechercher l'ensemble du réseau . Par exemple:
$ bad_words = array (); $ fp = fopen (" badwordsfile.txt ", " r") or die (" Impossible d'ouvrir le mauvais fichier de mots !") , Tandis que ($ mot = fgets ($ fp) ) {$ bad_words [ $ word ] = 1; }
obtenir le contenu à filtrer
récupérer le contenu que vous souhaitez filtrer . Le contenu peut être soumis par les utilisateurs commentaires d'un formulaire HTML , un document sur le disque ou même une page Web à partir d'Internet . Stocker le contenu en une seule variable. Par exemple:
$ to_do = file_get_contents ( " http://badmusiclyricswithprofanity.com ");
extraire des mots à partir du contenu
Pause le contenu non filtré en mots , en séparant les mots dans les espaces qui les séparent . Utilisez la fonction PHP " exploser " pour convertir la chaîne non filtrée dans un tableau de mots que vous pouvez filtrer individuellement . Par exemple:
$ words_to_filter = explode ( " ", $ to_do ) ;
Filtre mauvais mots
parcourir le tableau de mots et vérifier chaque mot contre le tableau contenant le " mauvais mot " liste. Si vous vérifiez le tableau en cherchant à voir si la valeur du tableau est un, vous allez générer une erreur à chaque fois que vous essayez d'accéder à un mot qui n'est pas dans la liste, parce que l'index du tableau n'existe pas. Au lieu de cela , utilisez la fonction " isset " pour déterminer si le mot est dans le tableau. S'il ya un match, remplacer le mot par la substitution choisie. Par exemple:
foreach ($ words_to_filter que $ mot => $ marque ) {if ( isset ($ bad_words [ $ word ] ) ) {$ mot = $ substitut ;}}
Photos Remonter le texte
mettre le texte en arrière en une seule variable avec la fonction " imploser " - " . exploser " le contraire de qu'il faut à chaque valeur du tableau et l'intégrer au caractères que vous désignez ; dans notre cas, c'est un espace . Echo des résultats des matières filtrées à l'écran . Par exemple :
$ filtré = implode ( " ", $ words_to_filter ) ; echo $ filtré; > Photos