Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Bad Word Filtre v PHP

PHP je skriptovací jazyk , ktorý vám pomôže spracovať vstup a vytvoriť HTML výstup pre užívateľa , tak to dáva zmysel použiť na vytvorenie " zlé slovo " filter . Proces vytvorenia " zlé slovo " filter v PHP je pomerne jednoduché . Môžete vytvoriť zoznam " zlé slovo , " oddeliť obsah bude filtrovaný do slov , porovnať každé slovo proti zoznamu a odstrániť alebo nahradiť niečo iné pre každý zápas . Najnáročnejšie častí vytváranie " zlé slovo " filter v PHP je zvoliť správnu štruktúru dát a algoritmus tak , aby váš kód beží tak rýchlo a efektívne , ako je to možné . Vytvorte Bad Zoznam Word

Vytvoriť zoznam " zlé slovo " , ktorý obsahuje všetky slová , ktoré nechcete zobrazovať na obrazovke . Zadajte každé slovo do dátového súboru , jedno slovo na riadok . Rozhodnite sa , čo by ste chceli nahradiť pre každé zlé slovo , napríklad " ***** " alebo " " alebo " . -------- " Miesto substitúcia do premennej pre neskoršie použitie pri filtrovaní sprosté slová . Napríklad : ?

< Php $ náhradou = " ----- " ;
Store Bad Zoznam Word v Array

Prečítajte si " zlé slovo " zoznam z disku a uložiť ich do dátovej štruktúry . Dalo by sa uvažovať o vytvorení poľa a uloženie každej " zlé slovo " ako prvok poľa , ako napríklad :

$ bad_word [ 0 ] = " thisbadword " ; $ bad_word [ 1 ] = " thatbadword " ;

Aj keď tento druh konštrukcie bude fungovať , je to neefektívne , pretože budete musieť hľadať celú radu zlých " slov " za každým slovom si skontrolovať proti zoznamu . Pre viac uskutočniteľný spôsob plnenia tejto úlohy , vytvoriť hash tabuľky . Navrhnite asociatívne pole a uloženie každej " zlé slovo " ako pole kľúča . Priradiť nič ako hodnotu , ako napríklad " 1 " alebo " pravdivý " . Ak chcete zistiť , či slovo v zozname , stačí jednoducho odkazovať na pole kľúč , skôr než hľadať celého poľa . Napríklad :

$ bad_words = array ( ) ; $ fp = fopen ( " badwordsfile.txt " , "r " ) or die ( " ! Nemožno otvoriť sprosté slová , súbor " ) , zatiaľ čo ( $ slovo = fgets ( $ fp ) ) { $ bad_words [ $ word ] = 1 ; }
Získajte obsah filtrovať

Načítať obsah ktoré chcete filtrovať . Obsah môže byť užívateľ - predložil pripomienky z HTML formulára , dokumentu na disku , alebo dokonca aj webové stránky z Internetu . Uloženie obsahu v jednej premennej . Napríklad :

$ to_do = file_get_contents ( " http://badmusiclyricswithprofanity.com " ) ;
Výpis Slová z obsahu

prestávka nefiltrovaného obsahu do slov oddelením slov na priestory , ktoré ich rozdeľujú . Použite funkciu PHP " explodovať " previesť nefiltrované reťazec do poľa slov môžete filtrovať individuálne . Napríklad :

$ words_to_filter = explode ( " " , $ to_do ) ;
Filter sprosté slová

iterácii cez pole slov a skontrolovať každé slovo proti poli, ktorý obsahuje " zlé slovo " zoznam . Ak zaškrtnete pole tým , že hľadá , či hodnota poľa je jeden , budete generovať chybu pri každom pokuse o prístup na slovo , ktorý nie je v zozname , pretože index pole neexistuje . Namiesto toho použite funkciu " isset " na určenie , či je slovo v poli . Ak je zápas , nahradiť slovo s vybraným substitúcia . Napríklad :

foreach ( $ words_to_filter ako $ slovo = > $ značka ) { if ( isset ( $ bad_words [ $ word ] ) ) { $ slovo = $ náhradou ; } }

Znovu Text

vložte text späť do jednej premennej s funkciou " implózii " - naproti na " explodovať " . Trvá každú hodnotu poľa a spojiť ju s znaky , ktoré určí , v našom prípade je to priestor . Echo výsledky filtrovaných obsahu na obrazovke . Napríklad : ?

$ Filtrovanie = implodujú ( " " , $ words_to_filter ) ; echo $ filtrovaný; >

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené