Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/07/2009, 16:06
vistol
 
Fecha de Ingreso: abril-2009
Mensajes: 8
Antigüedad: 15 años, 1 mes
Puntos: 0
Pasar signos por URL

Hola amigos

Os quería solicitar ayuda para un tema que es de vital importancia para mi proyecto muchocine [punto] net

La clave principal en MYSQL de las críticas es el NOMBRE de la película, por lo que debo pasar el nombre de la película por la URL para componer ciertas páginas.

De esta forma aplico dos transformaciones al nombre de la película para pasarlo por la URL:

1.- Los espacios en blanco los convierto en un guiones.
2.- Los acentos, diéresis, eñes y demás los elimino.

Esto se consigue mediante estas dos funciones PHP:

1.- Funcion para convertir espacios en guiones

function guiones($critica)
{
$critica=str_replace(' ','-',$critica);
return $critica;
}

2.- Funcion para quitar todos los acentos, diéresis, y eñes:

function QuitarAcentos($s) {
$s = ereg_replace("[áàâãªä]","a",$s);
$s = ereg_replace("[ÁÀÂÃÄ]","A",$s);
$s = ereg_replace("[ÍÌÎÏ]","I",$s);
$s = ereg_replace("[íìîï]","i",$s);
$s = ereg_replace("[éèêë]","e",$s);
$s = ereg_replace("[ÉÈÊË]","E",$s);
$s = ereg_replace("[óòôõºö]","o",$s);
$s = ereg_replace("[ÓÒÔÕÖ]","O",$s);
$s = ereg_replace("[úùûü]","u",$s);
$s = ereg_replace("[ÚÙÛÜ]","U",$s);
$s = str_replace("ç","c",$s);
$s = str_replace("Ç","C",$s);
$s = str_replace("ñ","n",$s);
$s = str_replace("Ñ","N",$s);
return $s;
}

Por lo tanto, siempre que se hace un enlace a una peli hago lo siguiente:

<?=guiones(QuitarAcentos($peli);?>

Y con esta cadena resultante, busco directamente en MYSQL:

$mysql->query("SELECT * FROM $tabla_comments,$tabla_articulos where $tabla_articulos.id=$tabla_comments.ref and $tabla_articulos.peli = '".$cadena_resultante."'");

Hasta aquí todo perfecto ya que de esta forma la URL admite la mayoría de las películas. Sin embargo, hay determinados casos en los que estas dos medidas no son suficientes, por ejemplo, en estos casos:

a) Cuando el nombre de la película contiene guiones, como por ejemplo "Kun-fu-sion"
b) Cuando el nombre de la película contiene un punto o dos o tres ".", como por ejemplo "Expiación. Más allá de la pasión."
c) Cuando el nombre de la película contiene comillas " o ' como por ejemplo: "Driver's nightmare"
d) Cuando el nombre de la película contiene signos de interrogación o exclamacion: ¿? ¡! Por ejemplo "¿Qué he hecho yo para merecer esto?.

¿Alguien me puede decir alguna forma de evitar estos 4 casos? Si es posible modificar la función para que no tenga que cambiar todos los enlaces a mano yo y la comunidad de cine más cachonda de internet os lo agradeceriamos enormemente.

Mil gracias y un abrazo desde muchocine [punto] net!!!