Filtro de palabras ofensivas

Iniciado por mark182, 20 Febrero 2010, 18:22 PM

0 Miembros y 1 Visitante están viendo este tema.

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. 

Castg!

#1
Código (html4strict) [Seleccionar]
<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....

KrossPock

#2
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
?>


~ Yoya ~

#3
Aqui en PHP...
Código (php) [Seleccionar]
<?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";




?>
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

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


~ Yoya ~

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.
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

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"
?>


~ Yoya ~

Si se escribe una palabra en mayuscula tu source no lo detecta
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

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  :¬¬


~ Yoya ~

Ps si man, tienes razón, aunque me gusta mas el mio xD.

Pd:Usa bbcode de code para php
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.