" oder " . --------" Legen Sie die Substitution in eine Variable zu einem späteren Zeitpunkt verwendet werden, wenn Filterung böse Worte . Zum Beispiel: ?
< Php $ Ersatz = " ----- "; Boddenangler Bad Word List in einem Array
Lesen Sie die " böses Wort " von der Festplatte und speichert ihn in einer Datenstruktur. Sie sollten erwägen, ein Array und Speichern jedes " böses Wort " als ein Element des Arrays , wie zum Beispiel:
$ bad_word [0] = " thisbadword "; $ bad_word [ 1] = " thatbadword " ; ;
Während diese Art von Struktur arbeiten, ist es ineffizient, weil Sie die ganze Palette von " böse Worte " für jedes Wort, das Sie anhand der Liste überprüfen zu suchen haben . Für einen gangbaren Weg für die Erfüllung dieser Aufgabe , eine Hash-Tabelle . Entwerfen Sie ein assoziatives Array und speichern jede " böses Wort ", wie die Array-Schlüssel . Weisen nichts als der Wert , wie z. B. "1" oder "true". Um festzustellen, ob ein Wort in der Liste ist , müssen Sie einfach die Array-Schlüssel , anstatt Suche das gesamte Array verweisen. Zum Beispiel:
$ bad_words = array (); $ fp = fopen (" badwordsfile.txt ", " r") or die (" Konnte nicht geöffnet Schimpfwörter Datei!" ) , Während ( $ word = fgets ( $ fp )) {$ bad_words [ $ word ] = 1; }
Holen Sie sich die Inhalte zu filtern
Rufen Sie die Inhalte dass Sie filtern möchten. Der Inhalt könnte Benutzer übermittelten Stellungnahmen von einem HTML-Formular , ein Dokument auf der Festplatte oder sogar eine Web -Seite aus dem Internet . Bewahren Sie die Inhalte in einer einzigen Variablen . Zum Beispiel:
$ to_do = file_get_contents ( " http://badmusiclyricswithprofanity.com ");
Extract Worte aus dem Inhalt
Pause das ungefilterte Inhalte in Worten durch die Trennung der Wörter auf die Räume , die sie trennen . Verwenden Sie das PHP " explodieren "-Funktion , um die ungefilterten String in ein Array von Wörtern Sie individuell filtern umwandeln kann. Zum Beispiel:
$ words_to_filter = explode ("" , $ to_do );
Filter Schimpfwörter
durch die Anordnung von Wörtern Iterate und prüfen Sie jedes Wort gegen die Anordnung mit dem " böses Wort "-Liste. Wenn Sie das Array überprüfen, indem Sie schauen, um zu sehen, ob die Array-Wert ist einer , generieren Sie einen Fehler jedes Mal, wenn Sie versuchen, ein Wort , das nicht in der Liste , weil der Array-Index nicht existiert zugreifen . Verwenden Sie stattdessen die " isset "-Funktion , um zu bestimmen , wenn das Wort in der Anordnung. Wenn es eine Übereinstimmung gibt , ersetzen Sie das Wort mit dem gewählten Substitution . Zum Beispiel:
foreach ($ words_to_filter wie $ word = > $-Zeichen ) {if ( isset ($ bad_words [ $ word ] )) { $ word = $ Ersatz ;}}
Montieren der Text
Setzen Sie den Text wieder in eine einzelne Variable mit dem " implodieren "-Funktion - " . explodieren " das Gegenteil von es dauert jedes Array-Wert und kommen sie mit Zeichen, die Sie benennen , in unserem Fall ist es ein Raum . Echo die Ergebnisse der gefilterten Inhalte auf den Bildschirm. Zum Beispiel: ?
$ = Implode ( " ", $ words_to_filter ) gefiltert; echo $ gefiltert; >