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 😛

Comments (6)

  • Curioso 2 noviembre, 2010

    te falta el httacess

    Reply
    • VideoTutoriales 3 noviembre, 2010

      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!

      Reply
  • Leon 16 agosto, 2011

    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.

    Reply
    • VideoTutoriales 16 agosto, 2011

      // 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

      Reply
  • Santiago 22 febrero, 2018

    Gracias Leon, funciona correctamente.

    Reply
    • Carlos Dk 23 febrero, 2018

      Nada… 😉

      Reply

Leave a comment

Sign in to post your comment or sine up if you dont have any account.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Tu software de gestión


Últimas preguntas:

Logo Dkreativo
Vertutoriales