viernes, 12 de marzo de 2010

URLs amigables (url friendly)

Le dejo una funcion que hice para generar nombres planos para urls amigables, si tienen mas caracteres especiales que quieran añadir pueden hacerlo en el array ascii_table

function generar_nombre_plano($n){
$result = strtolower($n);
$result = utf8_decode($result);
$ascii_table['á'] = 'a';
$ascii_table['a'] = 'a';
$ascii_table['A'] = 'a';
$ascii_table['s'] = 's';
$ascii_table['S'] = 's';
$ascii_table['ó'] = 'o';
$ascii_table['Ó'] = 'o';
$ascii_table['l'] = 'l';
$ascii_table['L'] = 'l';
$ascii_table['n'] = 'n';
$ascii_table['N'] = 'n';
$ascii_table['z'] = 'z';
$ascii_table['Z'] = 'z';
$ascii_table['z'] = 'z';
$ascii_table['Z'] = 'z';
$ascii_table['c'] = 'c';
$ascii_table['C'] = 'c';
$ascii_table['é'] = 'e';
$ascii_table['e'] = 'e';
$ascii_table['E'] = 'e';
$ascii_table['í'] = 'i';
$ascii_table['ó'] = 'o';
$ascii_table['Ö'] = 'o';
$ascii_table['õ'] = 'o';
$ascii_table['Ü'] = 'u';
$ascii_table['ü'] = 'u';
$ascii_table['ä'] = 'a';
$ascii_table['Ä'] = 'a';
$ascii_table['ß'] = 'ss';
$ascii_table['ú'] = 'u';
$ascii_table['ñ'] = 'n';
$keys = array_keys($ascii_table);
$result = str_replace($keys, $ascii_table, $result);
$result = preg_replace("/[^a-z0-9\s-]/", "", $result);
$result = trim(preg_replace("/\s+/", " ", $result));
$result = trim(substr($result, 0, 45));
$result = preg_replace("/\s/", "-", $result);
return $result;
}

No hay comentarios:

Publicar un comentario

Buscar este blog