Autor
|
Tema: Filtro de palabras ofensivas (Leído 10,788 veces)
|
mark182
|
Hola como esta?
Queria saber como se podria hacer un filtro de palabras ofensivas en un textarea? O sea, hay un formulario con un textarea donde el usuario puede dejar comentarios que seran guardados en una base de datos y que aparecera en la web, si ese comentario tiene palabras ofensivas, quiero que no se guarde el comentario y que le informe al usuario sobre lo ocurrido. Como se puede hacer?
Muchas gracias.
|
|
|
En línea
|
|
|
|
Castg!
Wiki
Desconectado
Mensajes: 1.191
|
<input type=button onclick='var tex=document.getElementById("textarea"); if (tex.value.split("palabra")) { tex.value = tex.value.replace("palabra", "******"); } document.form.submit(); '>
y creo que ahi tendria que ir.... silo queres en php es otra cosa....
|
|
« Última modificación: 21 Febrero 2010, 00:25 am por Castg! »
|
En línea
|
|
|
|
KrossPock
Desconectado
Mensajes: 208
|
En php: <?php $palabras=array("nabo","gil","palabra");// Aca va las palabras que no queres que aparescan $texto="Este script lo hizo krosspock, que no es un gil ni un nabo :P";// este es el texto $a =str_ireplace($palabras,"#@!%",$texto);// lo reemplazamos echo "$a"//y lo imprimimos a.a ?>
|
|
« Última modificación: 21 Febrero 2010, 00:45 am por KrossPock »
|
En línea
|
|
|
|
~ Yoya ~
Wiki
Desconectado
Mensajes: 1.125
|
Aqui en PHP... <?php function detect($txt){//Funcion detectadora de insultos $ins = array('idiota','loca');//Array que contiene los insultos a detectar foreach ($ins as $insulto){//Pasamos el array a una variable if(preg_match("/$insulto/i",$txt)){/*Usamos expreciones regulares para comprobar si en el texto existe algun insurto. Tambien uso el modificador i para que no diferencia entre mayuscula y minuscula*/ echo "Se a detectado insultos xD"; exit;//Si se ejecuta el if() se manda un mensaje y finaliza el script }} return $txt;//Si no se detecta ningun insulto devuelve el texto }//Fin de la funcion $a = "Buenas como estan?"; echo detect($a)."\n"; $b = 'Hola como estas loca he'; echo detect($b)."\n"; ?>
|
|
« Última modificación: 21 Febrero 2010, 00:47 am por yoyahack »
|
En línea
|
Mi madre me dijo que estoy destinado a ser pobre toda la vida. Engineering is the art of balancing the benefits and drawbacks of any approach.
|
|
|
KrossPock
Desconectado
Mensajes: 208
|
El mio e ma cortito y no consume tantos recursos xDD... hay que tratar de usar preg_match cuando realmente se necesitan expresiones regulares, sino str_replace o strpos
|
|
|
En línea
|
|
|
|
~ Yoya ~
Wiki
Desconectado
Mensajes: 1.125
|
Bueno en este caso es mejor crear una funcion, porque Optimizas los codes, yo para buscar texto, verificar o sacar, quitar siempre uso Expresiones Regulares, hay que acostumbrarse. No es que sea mas colto, ya que pasa a ser una funcion, ademas no creo que gaste mucho recurso porque nadamas la funcion se lee una sola vez, tambien se puede hacer facilmente con POO...
Usas una función para detectar o un POO para detectar y tienes un buen code, el que hiciste va a gastar siempre mas recursos, porque lo mas seguro se usara en mas de una variable y se hara lo mismo una y otra vez y gastara mas recursos y mas lineas.
|
|
|
En línea
|
Mi madre me dijo que estoy destinado a ser pobre toda la vida. Engineering is the art of balancing the benefits and drawbacks of any approach.
|
|
|
KrossPock
Desconectado
Mensajes: 208
|
Bueno en este caso es mejor crear una funcion, porque Optimizas los codes, yo para buscar texto, verificar o sacar, quitar siempre uso Expresiones Regulares, hay que acostumbrarse. No es que sea mas colto, ya que pasa a ser una funcion, ademas no creo que gaste mucho recurso porque nadamas la funcion se lee una sola vez, tambien se puede hacer facilmente con POO...
Usas una función para detectar o un POO para detectar y tienes un buen code, el que hiciste va a gastar siempre mas recursos, porque lo mas seguro se usara en mas de una variable y se hara lo mismo una y otra vez y gastara mas recursos y mas lineas.
Se lo transforma en funcion y listo a.a <?php Function detect ($texto){ $palabras=array("nabo","gil","palabra");// Aca va las palabras que no queres que aparescan $a =str_ireplace($palabras,"#@!%",$texto);// lo reemplazamos return $a; }
$y="hola nabo, no seas gil o Gil (para que veas que tambien borra mayusculas), aca iria otra palabra mas"; $t=detect($y); echo "$y<br>$t" ?>
|
|
|
En línea
|
|
|
|
~ Yoya ~
Wiki
Desconectado
Mensajes: 1.125
|
Si se escribe una palabra en mayuscula tu source no lo detecta
|
|
|
En línea
|
Mi madre me dijo que estoy destinado a ser pobre toda la vida. Engineering is the art of balancing the benefits and drawbacks of any approach.
|
|
|
KrossPock
Desconectado
Mensajes: 208
|
Si se escribe una palabra en mayuscula tu source no lo detecta
Lo probaste? si que lo detecta, uso str_ireplace() no str_replace hasta puse esta linea: $y="hola nabo, no seas gil o Gil (para que veas que tambien borra mayusculas), aca iria otra palabra mas"; para demostrarlo
|
|
|
En línea
|
|
|
|
~ Yoya ~
Wiki
Desconectado
Mensajes: 1.125
|
Ps si man, tienes razón, aunque me gusta mas el mio xD.
Pd:Usa bbcode de code para php
|
|
|
En línea
|
Mi madre me dijo que estoy destinado a ser pobre toda la vida. Engineering is the art of balancing the benefits and drawbacks of any approach.
|
|
|
|
|