Ultimos posts del blog de JCS

Actualizaciones cada 720 minutos.

martes, 24 de noviembre de 2009

Solución eliminar comillas y símbolos raros con php


Publicado en:

Hoy en el trabajo requería que de un formulario que puede llenar cualquier persona, insertar los campos en una base de datos y de estos datos se genera una página de internet, por lo tanto necesitaba eliminar todos los símbolos no permitidos para una url incluyendo comillas ("") y los espacios en blanco convertirlos a guión medio (-) en fín aquí esta la solución:

$posttitulo = trim($_POST["Titulo"]); //aqui asiganmos el valor que obtenemos del formulario a esta variable
$posttitulo = ereg_replace( '\"+', '', $posttitulo); //de esta manera eliminamos inmediatamente los espacios en blanco que pudieran estar al principio y al final de la variable
$posttitulo = str_replace("\'","",$posttitulo); //aquí eliminamos las comillas simples (')
$posttitulo = str_replace('\"',"",$posttitulo); //eliminamos las comillas dobles (")
$posttitulo = stripslashes($posttitulo); //eliminamos las diagonales invertidas que quedaron al eliminar las comiilas (\)
$posttitulo = explode("\\",$posttitulo);
$posttitulo = implode("",$posttitulo); //con esto por fín eliminamos las diagonales invertidas que quedaban al principio y al final cuando el usuario introducia comillas en estas posiciones, de esta mánera ya tenemos el título sin comillas
$posturl = strtolower($posttitle); //Simplemente convierte a minúsculas, esto ya es para la url
$posturl = trim($postname);
$posturl = ereg_replace(' +','-',$posturl); //reemplazamos los espacios en blanco por guiones medio (-)
$b = array("á","é","í","ó","ú","ä","ë","ï","ö","ü","à","è","ì","ò","ù","ñ"," ",",",".",";",":","¡","!","¿","?","/","*","+","´","{","}","¨","â","ê","î","ô","û", "^","#","|","°","=","[","]","<",">","`","(",")","&","%","$","¬", "@","Á","É","Í","Ó","Ú","Ä","Ë","Ï","Ö","Ü","Â","Ê","Î","Ô","Û","~","À", "È","Ì","Ò","Ù","_","\\"); //Estos arreglos nos ayudaran a reemplazar todos estos símbolos por letras que no causen problemas
$c = array("a","e","i","o","u","a","e","i","o","u","a","e","i","o","u","n","","","", "","","","","","","","","","","","","","a","e","i","o","u","","","","","", "","","","","","","","","","","","","A","E","I","O","U","A","E","I","O", "U","A","E","I","O","U","","A","E","I","O","U","-","");
$posturl = str_replace($b,$c,$posturl); //simplemente hacemos el reemplazo
$urlfinal = "http://tu-pagina-lista-sin-problemas/?p=".$posturl; //Como por arte de magia

Parece muy largo pero fué la única manera que pude quitar las comillas ("fué lo más dificil") en cualquier posición, ya que con ménos código podía eliminarlas pero me dejaba la diagonal invertida y ese símbolo también debía eliminarlo, además de que no se vería muy bien

Bájate aquí el archivo original del código

Comparte el artículo con todos

Algo parecido:

5 Comentarios a Solución eliminar comillas y símbolos raros con php

Anónimo
16 de mayo de 2010, 8:25

Muchisimas gracias, cuatro horas tratando de relver el mismo problema y nada. Eliminaba unicamente las comillas pero me segui saliendo error, no sabia que debia eliminar barras invertidas tambien :-) Gracias!!

16 de julio de 2012, 12:57

Gracias ! justo lo que necesitaba :)

Anónimo
10 de noviembre de 2012, 0:12

Gracias Estimado.... me salvaste el dia estuve 6 horas tratando de sacar el maldito "\"... saludos de Chile

31 de enero de 2013, 17:47

gracias, ahora si hubiera puesto fondo blanco y texto negro sería mejor

Anónimo
27 de junio de 2013, 17:14

para el de las comillas dobles no es necesario el backslash ya que se esta metiendo en una comilla simple, estaria nomando dos carateres

Publicar un comentario