En sitios como foros, blogs o cualquier tipo de Web donde cualquiera pueda escribir comentarios, es común que se tenga la necesidad de evitar que la gente escriba según que palabras, como insultos.
Para esto he hecho una pequeña función que facilita la tarea, es realmente muy simple es poco más que un bucle que se repite buscando cada una de las palabras de una lista predefinida, y que si encuentra alguna, la elimina.
La función:
function epm($cadena){
$palabras = 'sex, kill, drugs, fuck';
$palabra = explode(', ',$palabras);
$palabras = count($palabra);
$base = 0;
while($base<$palabras){
$cadena = str_ireplace($palabra[$base],'***',$cadena);
$base++;
}
return $cadena;
}
Como se puede ver, la lista de palabras que se eliminan están en la variable $palabras, separadas por comas. Para añadir o eliminar palabras de la lista, sólo hay que tener en cuenta este patrón: "palabra, palabra, palabra, etc."
Hay que notar que utiliza la función str_ireplace, si ponemos esa i delante de replace, no tendrá en cuenta las mayúsculas, y en este caso es algo importante para eliminar tanto Sex, como SEX o sex.
Ejemplos de uso:
echo epm('I want a lots of drugs.'); // I want a lots of ***.
O bien…
$cadena='I will kill you';
$cadena = epm($cadena);
echo $cadena; //I will *** you
fuente:
http://hide-url.net/descargar/dWdnYzovL2pqai5yenotdHNrLmFyZy8=.html