Ver Mensaje Individual
  #4 (permalink)  
Antiguo 30/11/2013, 11:38
Avatar de marlanga
marlanga
 
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: URLS amigables con caracteres especiales

Lo que quieres hacer, es la forma correcta de hacer urls amigables. Para ello, en la tabla de tags de sql, debes añadir un nuevo campo que se llame "slug", que es a cómo se le conoce esta técnica en el desarrollo web.

un slug es una cadena de texto convertida a un formato válido para poner en la URL.

Para llenar ese campo, no tienes mas que aplica la funcion str2Slug($cadena); a cada tag. El campo slug debe tener una restricción de tipo UNIQUE, como es natural. Esta función la puedes reutilizar en muchas partes, si pones toda tu web con urls amigables:

Código PHP:
Ver original
  1. function str2Slug($cadena,$separador="-"){
  2.     $slug = iconv('UTF-8', 'ASCII//TRANSLIT', $cadena);
  3.     $slug = preg_replace("/[^a-zA-Z0-9\/_|+ -]/", '', $slug);
  4.     $slug = strtolower(trim($slug, $separador));
  5.     $slug = preg_replace("/[\/_|+ -]+/", $separador, $slug);
  6.     return $slug;
  7. }

Por ejemplo, para la cadena ""Ésto es una cadena con eñes y áéíóú."
Sacaría "esto-es-una-cadena-con-enes-y-aeiou"

Para obtener el dato, solo necesitas obtener el trozo de la url que tú sabes que es el slug, y buscar su correspondiente coincidencia en el campo slug de cualquier tabla susceptible.