Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/05/2010, 10:21
tonimito
 
Fecha de Ingreso: diciembre-2003
Mensajes: 157
Antigüedad: 21 años, 2 meses
Puntos: 1
Funcion URL Amigable - No funciona cargada en libreria externa (con Include)

Hola people,

Nada, seguro que es una chorrada, pero no encuentro la solución, tengo ésta función para hacer URLs amigables:

Código PHP:
function url_amigables($url){
  
$search = array('<''>''"''&');    
    
$url str_replace($search''$url);
    
$search = array('á','Á','é','É','í','Í','ó','Ó','ú','Ú','ñ','Ñ');
    
$replace = array('a','a','e','e','i','i','o','o','u','u','n','n');
    
$search = array('Á''É''Í''Ó''Ú''á''é''è''í''ó''ú''Ü''ü''Ñ''ñ''_''-''ç''à');
    
$replace = array('a''e''i''o''u''a''e''e''i''o''u''u''u''n''n'' '' ''c''a');
    
$url str_replace($search$replace$url);
    
$url preg_replace('/&(?!#[0-9]+;)/s'''$url);
    
$search = array(' a '' ante '' de '' para '' con '' contra '' por '' entre '' en '' sobre '' bajo '' y '' e '' o '' u '' este ',  'aquel '' la '' el '' lo '' las '' los ''els''d’','l’','s’');
    
$url str_replace($search' 'strtolower($url));
    
$url str_replace($search$replacestrtolower(trim($url)));
    
$url preg_replace("/[^a-zA-Z0-9\s]/"''$url);
    
$url preg_replace('/\s\s+/'' '$url);
    
$url str_replace(' ''-'$url); 
    return 
$url;

Y la cargo en una libreria externa con include(), donde tengo todos los códigos y funciones para el sitio web.

Lo curioso es que la función sí que funciona, pero no me devuelve bien los acentos:

Por ejemplo: De "Castilla y León" me devuelve "castilla-len".

En cambio si pongo la función entre <head> y </head> en la misma página PHP, sin ser cargada con un include, funciona perfectamente, es decir, me devuelve "castilla-leon".

Alguien sabe que tengo que hacer? o que demonios pasa?

Gracias de antemano y un saludo!