Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/02/2004, 12:53
heyman
 
Fecha de Ingreso: noviembre-2003
Mensajes: 89
Antigüedad: 20 años, 5 meses
Puntos: 0
Pregunta Como se puede Mejorar este filtrador de malas palabras?

Hola que tal.
Me preguntaba como se puede mejorar este código, solamente detecta
palabras malas si estan entre espacios, por
ej: " malapalabra ", el PROBLEMA es si la PRIMERA palabra es una mala
palabra, o también si la ÚLTIMA palabra lo es, entonces NO
la detecta porque no tienen espacio a ambos lados. Digamos que son casos excepcionales. Si le quito el
espacio me cortaría palabras válidas que tuvieran una parte de una frase
que si se tomara por si sola sería una malapalabra.
Las malas palabras estan en DB.
Yo intentaba primero convertir todo el texto que viene de un
textarea a un array y separarlo en 3 partes:La primera palabra,
El cuerpo, y la última palabra.
Y a cada parte someterlo a sus respectivas pruebas modificando ligeramente
el codigo de abajo. Y después concatenar las 3
partes. Esa es la idea pero no se como llevarla a cabo, pienso que debe
haber otras formas mas sencillas pero no se las funciones necesarias.
Aqui va el código:

mysql_connect("localhost","my_user","my_pass") or die ("Error al conectar a la Bd");
$reemplazado=" ";
$result=mysql_db_query("my_base","select frase from palabras");
while($row=mysql_fetch_array($result))
{
$palabras2=$row["frase"];
$space=" ";
$palabras2=$space.$palabras2.$space;
$texto = eregi_replace("$palabras2", "$reemplazado", $texto);
}
echo $texto;

$texto tiene el mensaje que se introdujo a través de un
formulario, uso PHP 4.3.2
Gracias por la ayuda, Hasta Pronto.