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.
<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....
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
?>
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";
?>
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
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.
Cita de: yoyahack en 21 Febrero 2010, 00:54 AM
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"
?>
Si se escribe una palabra en mayuscula tu source no lo detecta
Cita de: yoyahack en 21 Febrero 2010, 18:18 PM
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 :¬¬
Ps si man, tienes razón, aunque me gusta mas el mio xD.
Pd:Usa bbcode de code para php
Muchas gracias por sus respuestas...los probaré y veré cual es el que se acomoda mas a lo que quiero. Gracias.
Cita de: Yoyahack en 21 Febrero 2010, 19:39 PM
Pd:Usa bbcode de code para php
xDDD no me habia dado cuenta