Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/07/2009, 12:28
Avatar de Ronruby
Ronruby
 
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 16 años, 5 meses
Puntos: 416
[APORTE] Función para crear URLs amigables

Comparto con ustedes esta función que cree hace un tiempo para hacer URL amigables:

Código PHP:
/** 
 Formato: 
  {id} se reemplaza por el ID pasado en el 2do argumento 
  {titulo} se reemplaza por el titulo creado por la funcion 
*/ 
function urlAmigable($titulo$id$formato ""$suffix ""$palabrasCensuradas = array()) { 
     
    
$wrong = array('á''é''í''ó''ú''ñ''Á''É''Í''Ó''Ú''Ñ''ç''ü'); 
    
$right = array('a''e' ,'i''o''u''n''A''E''I''O''U''N''c''u'); 
     
    
//Reemplaza los caracteres especiales 
    
$titulo str_replace($wrong$right$titulo); 
    
//Pone la cadena en minisculas 
    
$titulo strtolower($titulo); 
    
//Reemplaza todo lo que no sean letras ni numeros por "-" 
    
$titulo preg_replace("/[^a-z0-9]+/""-"$titulo); 
    
//Elimino los "-" al principio y final de la cadena 
    
$titulo trim($titulo'-'); 
    
//Separo la cadena en un array, usando "-" como delimitador 
    
$palabras explode("-"$titulo); 
     
    
$censuradas = array("a""en""el""un""la""una""o""se""de""del"); 
    
$censuradas array_merge($censuradas$palabrasCensuradas); 
     
    
//Usando array_diff, a mi array antes obtenido le resto el array de palabras comunes 
    
$palabras array_diff($palabras$censuradas); 
    
//Vuelvo a "pegar" la cadena 
    
$titulo implode("-"$palabras); 
    
//Vuelvo id a su valor numerico 
    
$id intval($id); 
     
    if ( ! empty(
$formato)) { 
        
$plantilla = array('{id}''{titulo}'); 
        
$reemplazo = array($id$titulo); 
        
$url str_replace($plantilla$reemplazo$formato); 
        
$url .= $suffix
    } else 
$url "$titulo-$id$suffix";  
    
//Retorno la URL amigable 
    
return $url


Ejemplo de Uso:
Código PHP:
echo urlAmigable("[APORTE] Función para crear URLs amigables"5"{id}/{titulo}"".html", array("para")); 
Resultado:
Cita:
5/aporte-funcion-crear-urls-amigables.html
Si tienen alguna pregunta, comentario, critica, sugerencia, no duden en ponerlas.

EDIT: Le corregi un error del que no me habia dado cuenta y aplique la sugerencia de pateketrueke.

Última edición por Ronruby; 09/07/2009 a las 16:25