Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> Programmazione >> PHP /MySQL Programmazione >> .

Filtri brutta parola in PHP

PHP è un linguaggio di scripting che consente di processo di ingresso e creare output HTML per gli utenti , quindi ha senso usarlo per creare una " brutta parola " filtro . Il processo di creazione di una " brutta parola " filtro in PHP è molto semplice . Si stabilisce una " brutta parola " lista , separare il contenuto da filtrare in parole , confrontare ogni parola contro la lista e rimuovere o sostituire qualcos'altro per ogni partita . La parte più impegnativa della creazione di una " brutta parola " filtro in PHP è quello di scegliere la struttura di dati a destra e l'algoritmo in modo che il codice viene eseguito il più rapidamente ed efficacemente possibile . Crea Bad Word List

creare una " brutta parola ", lista che include tutte le parole che non si desidera visualizzare sullo schermo . Digitare ogni parola in un file di dati , una parola per riga . Decidi cosa vuoi sostituire ogni parola cattiva, per esempio " ***** " o " " o " . --------" Posizionare la sostituzione in una variabile da utilizzare più tardi, quando il filtraggio parolacce . Ad esempio : ?

Conservare Bad Word List in un Array

Leggi la " parolaccia " lista da disco e conservarla in una struttura di dati . Si potrebbe prendere in considerazione la creazione di un array e la memorizzazione di ogni " brutta parola ", come un elemento della matrice , come ad esempio :

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

Mentre questo tipo di struttura funzionerà , è inefficiente perché si deve cercare l'intera serie di "cattive parole" per ogni parola che si controlla con l'elenco . Per un modo più fattibile di compiere questa operazione , creare una tabella hash . Progettare un array associativo e memorizzare ogni " brutta parola ", come la chiave dell'array . Assegnare nulla come valore , come ad esempio "1" o " vero". Per determinare se una parola è nella lista , è sufficiente fare riferimento alla chiave dell'array , piuttosto che cercare l'intero array . Per esempio :

$ bad_words = array (); $ fp = fopen ( " badwordsfile.txt " , "r" ) or die ( "Impossibile aprire il file di male parole !") , Mentre ( $ parola = fgets ( $ fp ) ) { $ bad_words [ $ parola ] = 1; }
ottenere il contenuto su Filtro

recuperare il contenuto che si desidera filtrare . Il contenuto potrebbe essere user - presentato osservazioni da un modulo HTML , un documento su disco o anche una pagina Web da Internet . Conservare il contenuto di una singola variabile . Per esempio :

$ to_do = file_get_contents ( " http://badmusiclyricswithprofanity.com " ) ;
estrarre le parole dal contenuto

rottura il contenuto non filtrato in parole separando le parole presso gli spazi che li dividono . Utilizzare la funzione PHP " esploderà " per convertire la stringa non filtrato in un array di parole è possibile filtrare singolarmente . Per esempio :

$ words_to_filter = explode ( " " , $ to_do ) ;
Filtro parolacce

scorrere la matrice di parole e controllare ogni parola contro l' array contenente la " parolaccia " lista . Se si seleziona la matrice , cercando di vedere se il valore della matrice è uno , si genererà un errore ogni volta che si tenta di accedere a una parola che non è nella lista, perché l'indice di campo non esiste. Invece , utilizzare la funzione " isset " per determinare se la parola è nella matrice . Se vi è una corrispondenza, sostituire la parola con la sostituzione prescelta . Per esempio :

foreach ( $ words_to_filter da $ parola = > $ marchio ) {if ( isset ( $ bad_words [ $ parola ] ) ) { $ parola = $ sostituto ; } }

Rimontare il testo

Mettere il testo di nuovo in una singola variabile con la funzione " implode " - " . esplodere " il contrario di prende ogni valore dell'array e connettiti con personaggi si designa , nel nostro caso , si tratta di uno spazio. Echo risultati dei contenuti filtrati alla schermata . Ad esempio : ?

$ Filtrato = implode ( " " , $ words_to_filter ) ; echo $ filtrata ; >

 

Programmazione © www.354353.com