URLs SEO con PHP y jQuery

as URLs amigables se caracterizan por ser descriptivas y fáciles de escribir, también por tener un formato de caracteres alfanuméricos en minúsculas, separando las palabras por guiones “-”.

En este tutorial aprenderemos como realizar un formulario que nos devuelva la URL SEO en base al titulo.

1. Estructura HTML

Dentro del head incluiremos la librería jQuery desde Google y crearemos una función que nos retornara una petición Ajax.


    
    

Ahora crearemos el formulario donde ingresaremos un texto y nos devolverá la misma en URL SEO.


    

2. Creando la función PHP

Esta función PHP nos filtrara los caracteres alfanuméricos y guiones eliminando el resto, y de esta manera generaremos la URL.
Este script lo pegaremos en el mismo archivo definido en la función javascript, para que retorne la URL.

< ?php
function getUrlAmigable($s){

    $s = strtolower($s);
    $s = ereg_replace("[áàâãäª@]","a",$s);
    $s = ereg_replace("[éèêë]","e",$s);
    $s = ereg_replace("[íìîï]","i",$s);    
    $s = ereg_replace("[óòôõºö]","o",$s);
    $s = ereg_replace("[úùûü]","u",$s);
    $s = ereg_replace("[ç]","c",$s);    
    $s = ereg_replace("[ñ]","n",$s);
    $s = preg_replace( "/[^a-zA-Z0-9-]/", "-", $s );
    $s = preg_replace( array("`[^a-z0-9]`i","`[-]+`") , "-", $s);
    
    return trim($s, '-');
}

if(isset($_GET['title'])){
    $url = getUrlAmigable(utf8_decode($_GET['title']));
    echo $url;exit;
}
?>

Ejemplo

En este ejemplo podemos testear la función PHP generando URLs SEO, veremos que elimina las tildes y caracteres raros.

jfdghjhthit45

zp8497586rq

También te puede interesar

6 Comments

  1. uberVU - social comments
    ene 28, 2010 @ 20:01:09

    Social comments and analytics for this post…

    This post was mentioned on Facebook by Cesar Mancilla: URLs SEO con PHP y jQuery | http://tinyurl.com/y8wkdtq

  2. Pazador
    mar 14, 2010 @ 22:31:15

    y que paso con las mismas letras pero mayusculas??? Â È Ì Ò Ù

    • craftyman
      mar 15, 2010 @ 14:23:59

      @Pazador ,

      Al mandar una cadena a la funcion getUrlAmigable() se hace un strtolower para solo buscar tildes en letras minusculas.

      Saludos.

  3. Joan
    may 13, 2010 @ 04:18:49

    Hola el script funciona perfecto, una gran ayuda para hacer urlseo pero no sé meter el resultado del
    en un campo input para insertar el resultado en una base de datos mysql.

    Gracias

  4. Jonan
    may 13, 2010 @ 09:29:19

    como meto esto en un input para guardarlo en una base de datos

  5. DjMiki
    abr 03, 2011 @ 23:55:36

    bueno brother, excelente aplicacion, me gusta pero no se que es lo que este pasando pero a mi no me funciona ni en locahost ni en mi host de paga, y no se a q se deba, yo pongo esa funcion en un file donde tengo todas mis funciones y lo jalo con require o un include, incluso lo pongo en el mismo file q ejecuto mis pruebas y no funciona para nada, osea no me devuelve el seo , si no me lo devuelve el original, no lo ago con jquery, si no via php nomas, alguna ayuda con respecto a la version dle php quizas, mi version es la 5.2.14. Espero me puedan ayudar, Gracias de ante mano.