Código PHP para generar o crear una URL amigable para buscadores como Google, Bing o Yahoo

Bienvenidos a Ver Tutoriales, en esta ocasión os traigo una función que encontré por internet (siento no poder recordar la fuente), es muy sencilla, y sirve para cambiar todas las letras no funcionales para una url, como son los acentos, la ñ, y todos los caracteres especiales.

De manera que cambiará las á por a las é por e y así con todas las letras. Pongamos el código y lo vereis más claro:

<?
function urlamigable($url) {

// Tranformamos todo a minusculas

$url = strtolower($url);

//Rememplazamos caracteres especiales latinos

$find = array(‘á’, ‘é’, ‘í’, ‘ó’, ‘ú’, ‘ñ’);

$repl = array(‘a’, ‘e’, ‘i’, ‘o’, ‘u’, ‘n’);

$url = str_replace ($find, $repl, $url);

// Añadimos los guiones

$find = array(‘ ‘, ‘&’, ‘\r\n’, ‘\n’, ‘+’);
$url = str_replace ($find, ‘-‘, $url);

// Eliminamos y Reemplazamos el resto de caracteres especiales

$find = array(‘/[^a-z0-9\-<>]/’, ‘/[\-]+/’, ‘/<[^>]*>/’);

$repl = array(”, ‘-‘, ”);

$url = preg_replace ($find, $repl, $url);

return $url;

}
?>

El código creo que es bastante simple y está bien comentado. Lo único que debemos de hacer es llamar a la función urlamigable que recibe el valor que ha de ser la url a transformar, y nos devolverá la url con los caracteres ya cambiados y listos para indexarse 🙂

Más adelante os pondré como generar un sitemap.xml para vuestra web, atacando la base de datos de mysql y utilizaremos de una manera un poco chorra esta función para que nos indexen más rapidamente los buscadores Google, Bing y Yahoo entre otros.

Pues nada más, espero que os sirva. Se puede comentar 😛

Te puede interesar:

4 comentarios

  • Curioso commented on 2 noviembre, 2010 Reply

    te falta el httacess

    • VideoTutoriales commented on 3 noviembre, 2010 Reply

      Buenas Curioso,

      El httaccess es para indicarle a apache como ha de gestionarse siguiendo unos patrones, en el caso que comentas es con el Rewriterule para asignarle la forma de recoger valores por la url. Pero no es lo que quería exponer, ya que necesitaría un artículo completo para explicar el Rewrite.

      Si quieres puedes colaborar :). De todas maneras lo tomaré en cuenta y si tengo esta semana un rato lo miraré para crear una url sencilla con un par de parámetros.

      Un saludo!

  • Leon commented on 16 agosto, 2011 Reply

    Hola probé su función y este es el resultado.

    con_guion($url)// $url=Mi primer con Ñandú

    devuelve mi-primer-con-and

    cuando deberia devolver mi-primer-con-nandu

    creo que algo falla en la función.

    • VideoTutoriales commented on 16 agosto, 2011 Reply

      // Esta función devuelve un valor sin acentos ni simbolos raros para utilizarse
      // en las urls amigables
      function urla($url) {

      // Tranformamos todo a minusculas
      $url = strtolower($url);

      //Rememplazamos caracteres especiales latinos
      $find = array(‘á’, ‘é’, ‘í’, ‘ó’, ‘ú’, ‘ñ’);
      $repl = array(‘a’, ‘e’, ‘i’, ‘o’, ‘u’, ‘n’);
      $url = str_replace ($find, $repl, $url);

      // Añaadimos los guiones
      $find = array(‘ ‘, ‘&’, ‘\r\n’, ‘\n’, ‘+’);
      $url = str_replace ($find, ‘-‘, $url);

      // Eliminamos y Reemplazamos demás caracteres especiales
      $find = array(‘/[^a-z0-9\-]/’, ‘/[\-]+/’, ‘/]*>/’);
      $repl = array(”, ‘-‘, ”);
      $url = preg_replace ($find, $repl, $url);
      return $url;

      }

      Revisa esta función, está completa y en producción

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *