" eller " . -------- " Placer substitution ind i en variabel, der skal bruges senere, når filtrering dårlige ord . For eksempel: ?
< Php $ erstatning = "----- "
Store Bad Word List i et Array
Læs den "dårlige ordet" liste fra disken og opbevar det i en datastruktur. Du kan overveje at oprette et array og opbevaring hver " dårligt ord " som et element i array, såsom : Hej
$ bad_word [0] = " thisbadword " $ bad_word [1 ] = " thatbadword " ,,
denne form for struktur vil arbejde , er det ineffektivt , fordi du er nødt til at søge i hele vifte af "dårlige ordene" for hvert ord du kontrollere mod listen. For en mere realistisk måde at opnå denne opgave , skal du oprette en hash tabel. Design en associativt array og gemme hver " dårligt ord " som array nøgle. Tildel noget som værdien , såsom " 1" eller "sande ". At afgøre, om et ord er på listen, er du simpelthen nødt til at henvise til array nøgle, snarere end søge hele systemet . For eksempel : Hej
$ bad_words = array (); $ fp = fopen ( " badwordsfile.txt ", " r" ) or die ( "Kunne ikke åbne dårlige ord fil !") , Mens ( $ word = fgets ($ fp )) { $ bad_words [$ word ] = 1 ;}
få indholdet til Filter
Hent indholdet som du ønsker at filtrere. Indholdet kan være bruger-indsendes kommentarer fra en HTML-formular , et dokument på disk eller endda en webside fra internettet. Opbevar indholdet i en enkelt variabel . For eksempel : Hej
$ to_do = file_get_contents ( " http://badmusiclyricswithprofanity.com ")
Extract Ord fra Content
Break den ufiltrerede indhold i ord ved at adskille ordene på de rum , der deler dem . Brug PHP " eksploderer "-funktionen til at konvertere den ufiltrerede streng i et array af ord, du kan filtrere individuelt. For eksempel : Hej
$ words_to_filter = eksplodere ("" , $ to_do )
Filter dårlige ord
gentage gennem den vifte af ord og kontrollere hver enkelt ord mod array, der indeholder den "dårlige ordet" listen. Hvis du tjekker array ved at se , om array værdien er en, vil du generere en fejl hver gang du forsøger at få adgang til et ord, der ikke er på listen, fordi arrayindeks ikke eksisterer. Brug i stedet " isset " funktion til at bestemme , hvis ordet er i array . Hvis der er et match , erstatte ordet med det valgte substitution. For eksempel : Hej
foreach ( $ words_to_filter som $ word => $ mark) {if ( isset ( $ bad_words [$ word ] )) { $ word = $ stedfortræder ;}}
Saml tekst
Sæt teksten tilbage i en enkelt variabel med " implodere " funktion - " . eksplodere " det modsatte af det tager hvert array værdi og slutte det med tegn, du udpeger , i vores tilfælde , er det et mellemrum. Echo resultaterne af de filtrerede indhold til skærmen. For eksempel: ?
$ Filtreret = implodere ("" , $ words_to_filter ) echo $ filtreret , >