Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/01/2014, 16:20
JaiR0
 
Fecha de Ingreso: febrero-2009
Mensajes: 12
Antigüedad: 15 años, 10 meses
Puntos: 0
Mensaje Como limpiar cadena PHP de caracteres extraños

Estoy dando mis primeros pasos en el PHP y vengo buscando ayuda aca donde estan los expertos.

Ya se que hay cientos de temas parecidos pero no he visto solucion.

Lo que pasa es que tengo una web donde hay mas de 20000 entradas y estan aumentando todos los dias con el buscador obvio ayudo a los usuarios a encontrar lo que necesitan, tengo algo que me limpia lo que buscan en el formulario de ciertos caraceres y palabras que no me gustaria que estuvieran. Todo lo que los visitantes buscan se guarda en una base de datos pero hay caracteres y cosas que todavia no me limpia. No se mucho de php pero hice esto.

Código PHP:
$palabra_busqueda=strip_tags($_GET['palabra']);
$palabra_busqueda=str_replace('-',' '$palabra_busqueda);
$palabra_busqueda=str_replace('ñ','ñ'$palabra_busqueda);
$trozos=explode(" ",$palabra_busqueda);
$numero=count($trozos);

$palabra_busqueda=strtolower($palabra_busqueda);
$preposicioness = array("  "," 1 "," 2 "," 3 "," 4 "," 5 "," 6 "," 7 "," 8 "," 9 "," 11 "," 12 "," 13 "," 14 "," 15 "," 16 "," 17 ","{","}","[","]","=","&","?","<","<","<>","$","?","Content-Type:","MIME-Version:""Content-Transfer-Encoding:","Return-path:","Subject:","From:","Envelope-to:","To:","bcc:","cc:","UNION","DELETE","DROP","SELECT","INSERT","UPDATE","CREATE","TRUNCATE","ALTER","INTO","DISTINCT","GROUP BY","WHERE","RENAME","DEFINE","UNDEFINE","PROMPT","ACCEPT","VIEW","COUNT","HAVING","SCRIPT","'",'"',"*","phpMyAdmin","phpadmin","myadmin","sqladmin3","php","php","jsp",".",",","/","á","é","í","ó","ú","ä","ë","ï","ö","ü","à","è","ì","ò","ù",".",";",":","¡","!","¿","?","Ã","ƒ","Â","³","asp","html","php","http://","http");
$palabra_busqueda str_replace($preposicioness,' '$palabra_busqueda); 
$sql=mysql_query("SELECT pin_search FROM search_dos WHERE pin_search='$palabra_busqueda'");
$tote=mysql_num_rows($sql);
if ((
$tote==0) AND ($numero<10)){
$fechaf=date("r");
mysql_query("INSERT INTO search_dos (`mon_id`,`mon_search`,`mon_funix`)
VALUES ('','$palabra_busqueda','$fechaf')"
);

Eso me limpia algunas cosas, no se de PHP pero eso me funciona pero en la base de datos se siguen guardando cosas como estas.

Æ’ †â€™ †¢â‚¬â„¢ Æ’ ¢â‚¬ ¢ ¢â€š ¬ ¢â€ž ¢ Æ’ †â€™ ¢ ¢â€š ¬ … Æ’ ¢â‚¬Å ‚ ‚ ¯ Æ’ †â€™ †¢â‚¬â„¢ Æ’ ‚ ¢ ¢ ¢â‚¬Å ‚ ¬ … ‚ Æ’ †â€™ ¢ ¢â€š ¬ … Æ’ ¢â‚¬Å ‚ ‚ Æ’ †â€™ †¢â‚¬â„¢ Æ’ ‚ ¢ ¢ ¢â‚¬Å ‚ ¬ … ‚ Æ’ †â€™ ¢ ¢â€š ¬ … Æ’ ¢â‚¬Å ‚ ‚ ½as de a Æ’ †â€™ †¢â‚¬â„¢ Æ’ ¢â‚¬ ¢ ¢â€š ¬ ¢â€ž ¢ Æ’ †â€™ ¢ ¢â€š ¬ … Æ’ ¢â‚¬Å ‚ ‚ ¯ Æ’ †â€™ †¢â‚¬â„¢ Æ’ ‚ ¢

No se si hay gente mal intensionada y busca esto, o desde google que llegan visitas al historial de busquedas.

Tengo que agegar todos esos caracteres a $preposicioness o que otra solucion me dan.

Espero no sean groceros que por eso uno muchas veces se abstiene de publicar en estos foros.

Mil gracas por la ayuda