Crear url a partir de un texto con PHP
por tryke en Dic.17, 2008, dentro PHP
En algunas ocasiones puede interesarnos generar urls dinamicamente a partir de un título.
Esta técnica se utiliza mucho por temas de posicionamiento en buscadores. Yo no he sabido encontrar ninguna función en PHP que te quite los acentos para poder generar una url a partir de un texto. Asi que me cree mi propia solución para este problema.
La idea es muy simple, creamos una pequeña función que mediante expresiones regulares sustituya los caracteres con acentos por el caracter que más se le asemeja.
función para quitar acentos
-
<?php
-
static public function fsPath($texto) {
-
$s = trim($texto);
-
$s = strtolower($s);
-
$s = ereg_replace("[ ]+","-",$s);
-
$s = ereg_replace("ç","c",$s);
-
$s = ereg_replace("ñ","n",$s);
-
$s = ereg_replace("á|à|â|ã|ä|â|ª","a",$s);
-
$s = ereg_replace("í|ì|î|ï","i",$s);
-
$s = ereg_replace("é|è|ê|ë","e",$s);
-
$s = ereg_replace("ó|ò|ô|õ|ö|º","o",$s);
-
$s = ereg_replace("ú|ù|û|ü","u",$s);
-
$s = ereg_replace("[^a-z0-9_-]",'',$s);
-
return substr($s, 0, 40);
-
}
-
?>
Por último se corta el texto para que tenga un máximo de 40 caracteres para evitar que salgan URLs demasiado largas.
ejemplo
-
<?php
-
$titulo = "Casa en cataluña";
-
$url = fsPath($titulo) . ".html";
-
echo $url; //casa-en-cataluna.html
-
?>
Responder
Necesitas estar loginado para hacer un comentario.