" o . " -------- " Lugar la sustitución en una variable que se utilizará más adelante al filtrar las malas palabras . Por ejemplo : ?
< Php $ sustituto = "----- " ;
tienda Malo lista de palabras en una matriz
Lea la " mala palabra " lista desde el disco y lo almacena en una estructura de datos . Usted podría considerar la creación de una matriz y almacenamiento de cada " mala palabra ", como un elemento de la matriz, como por ejemplo:
$ bad_word [ 0 ] = " thisbadword " ; $ bad_word [ 1 ] = " thatbadword " ; ;
Si bien este tipo de estructura va a funcionar , es ineficiente ya que hay que buscar en toda la gama de "malas palabras" para cada palabra de comprobar con la lista . Para una manera más factible de llevar a cabo esta tarea, crear una tabla hash. Diseñar una matriz asociativa y almacenar cada " mala palabra ", como clave del array . Asignar nada como el valor , como " 1 " o "verdadero ". Para determinar si una palabra está en la lista , sólo hay que hacer referencia a la clave de la matriz , en lugar de buscar en todo el conjunto . Por ejemplo :
$ bad_words = array (); $ fp = fopen ( " badwordsfile.txt " , "r" ) or die ("No se pudo abrir el archivo de palabras mal ! " ), Mientras que ($ palabra = fgets ($ fp ) ) {$ bad_words [$ palabra ] = 1 ;}
obtener el contenido a Filtro
Recuperar el contenido que desea filtrar . El contenido puede ser enviado por los usuarios los comentarios de un formulario HTML , un documento en el disco o incluso una página web de Internet. Guarde el contenido en una sola variable. Por ejemplo :
$ to_do = file_get_contents ( " http://badmusiclyricswithprofanity.com ");
Extracto Palabras del contenido
Vacaciones el contenido no filtrado en palabras , separando las palabras en los espacios que los separan . Utilice la función de PHP " explotar " para convertir la cadena no filtrado en una serie de palabras que se pueden filtrar de forma individual . Por ejemplo :
$ words_to_filter = explode ( " ", $ to_do ) ;
Filtro Palabras Bad
recorrer la matriz de palabras y comprobar cada palabra en contra de la matriz que contiene la "mala palabra" lista. Si marca la matriz examinado para ver si el valor de la matriz es uno , se generará un error cada vez que intente acceder a una palabra que no está en la lista, ya que el índice de matriz no existe. En su lugar , utilice la función " isset " para determinar si la palabra está en el array. Si hay una coincidencia , sustituir la palabra con la sustitución elegido . Por ejemplo :
foreach ($ words_to_filter como $ word = > $ marca) { if ( isset ($ bad_words [$ palabra ])) {$ word = $ sustituto ;} }
volver a montar el texto Fotos
Poner el texto de nuevo en una sola variable con la función de " implosión " - ". explotar " lo contrario de lo toma cada valor de la matriz y unirse con caracteres que usted designe , en nuestro caso , se trata de un espacio. Echo los resultados de los contenidos filtrados a la pantalla . Por ejemplo : ?
$ Filtra = implosión ("", $ words_to_filter ) ; echo $ filtrada ; >