Url amigable con PHP

La programación con PHP y Mysql, conlleva el uso de parámetros dentro de la url y esto ocasiona que nuestras urls no sean del todo amigables cara a los buscadores y tampoco cara a los usuarios que las leen.
Por eso el importante que intentemos eliminar caracteres extraños dentro de nuestras url.
En el siguente código se muestra una función básica que haciendo uso de la función str_replace, sustituye caracteres extraños como tildes, eñes y demás por otros que nosotros definiremos para de esa forma generar url amigables con PHP.

Eliminar caracteres extraños con PHP

function urls_amigables($titulo) 
	{
	$titulo = strtolower($titulo);
	$find = array('á', 'é', 'í', 'ó', 'ú', 'ñ');
	$repl = array('a', 'e', 'i', 'o', 'u', 'n');
	$titulo = str_replace ($find, $repl, $titulo);
	$find = array(' ', '&', '\r\n', '\n', '+'); 
	$titulo = str_replace ($find, '-', $titulo);
	$find = array('/[^a-z0-9\-<>]/', '/[\-]+/', '/<[^>]*>/');
	$repl = array('', '-', '');
	$titulo = preg_replace ($find, $repl, $titulo);	
	return $titulo;
	}

Originally posted 2011-04-11 08:54:57.

4 Responses to “ Url amigable con PHP ”

  1. Jose Manuel dice:

    Está muy bien este script pero no lo entiendo del todo, solo es este fragmento de código el que no entiendo:

    $titulo = preg_replace ($find, $repl, $titulo);

    Podrían explicármela?

  2. jlmora dice:

    Lo que preguntas es la clave del algoritmo para url limpias.

    Siempre tenemos: $find con lo que tenemos que encontrar y $repl con el reemplazo para esos caracteres, la función preg_replace es la que hace el cambio retorna la cadena limpia.

    Gracias por participar

    • Quintas dice:

      Que tal, muy bueno el aporte, solo tengo algunos problemas para implementarlo en base de datos, es decir; el titulo del post lo grabo en BD en el campo SEO pero no encuentro como la función pueda transformarlo en url amigable, si tiene por ahí alguna idea que pueda mostrarme se lo agradeceré.
      Muchos saludos

    • Quintas dice:

      Muy buen aporte solo tengo un problema para implementarlo en la BD, no logro que la funcion transforme el titulo del post y despues grabar la url amigable en el campo seo, tendra alguna idea que pueda mostrame? muchas gracias y sds

Deja un comentario