PHP

Curso PHP, como crear una URL amigable a partir de una cadena

2 febrero, 2016

En este curso PHP veremos una función con la que vamos a poder crear una URL amigable a partir de una cadena de texto. Sabemos que las URL amigables son muy importantes para el posicionamiento SEO, nos ayudará mucho a conseguir una mejor visibilidad en los buscadores como Google, Bing, Yahoo…

Esta forma de crear URL amigables muy útil, por ejemplo, en una tienda online donde como URL amigable utilizaremos el nombre del producto.

Partimos de una cadena de texto, por ejemplo:

¡¡¡Mira como me convierto en una URL válida!!!

Conseguiremos una URL sin acentos ni caracteres especiales, los espacios serán cambiados por un separador, en este ejemplo hemos usado un guion medio como separador. Lograremos crear la siguiente URL amigable, en este ejemplo será:

mira-como-me-convierto-en-una-url-valida

Comenzamos creando la función:

function generar_url($cadena) {
$separador = '-';//ejemplo utilizado con guión medio
$originales = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿŔŕ';
$modificadas = 'aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyRr';

//Quitamos todos los posibles acentos
$url = strtr(utf8_decode($cadena), utf8_decode($originales), $modificadas);

//Convertimos la cadena a minusculas
$url = utf8_encode(strtolower($url));

//Quitamos los saltos de linea y cuanquier caracter especial
$buscar = array(' ', '&', '\r\n', '\n', '+');
$url = str_replace ($buscar, $separador, $url);
$buscar = array('/[^a-z0-9\-<>]/', '/[\-]+/', '/<[^>]*>/');
$reemplazar = array('', $separador, '');
$url = preg_replace ($buscar, $reemplazar, $url);
return $url;
}

Una vez que tenemos la función creada vamos a ver como utilizar dicha función


// Ejemplo de uso:
echo generar_url('¡¡¡Mira como me convierto en una URL válida!!!');

Podéis encontrar las especificaciones de todas las funciones usadas en este curso de PHP en la pagina oficial de php.net

Valora este post

También podría gustarte

Sin Comentarios

Dejar un Comentario