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
5 Comentarios a Solución eliminar comillas y símbolos raros con php
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!!
Gracias ! justo lo que necesitaba :)
Gracias Estimado.... me salvaste el dia estuve 6 horas tratando de sacar el maldito "\"... saludos de Chile
gracias, ahora si hubiera puesto fondo blanco y texto negro sería mejor
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