Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/06/2009, 08:44
Avatar de newboy_master
newboy_master
 
Fecha de Ingreso: enero-2008
Ubicación: Granada
Mensajes: 882
Antigüedad: 16 años, 10 meses
Puntos: 46
Problema función para URL amigable.

Buenas, tenga esta función para convertir cadenas a amigables:

Código PHP:
function amigable($str) {

    
$search = array('<''>''"''&');    
    
$str str_replace($search''$str);
    
    
$search = array('á','Á','é','É','í','Í','ó','Ó','ú','Ú','ñ','Ñ');
    
$replace = array('a','a','e','e','i','i','o','o','u','u','n','n');
    
    
$str str_replace($search$replace$str);
    
    
$str preg_replace('/&(?!#[0-9]+;)/s'''$str);

    
$search = array(' a '' ante '' de '' para '' con '' contra '' por '' entre '' en '' sobre '' bajo '' y '' e '' o '' u '' este ',  'aquel '' la '' el '' lo '' las '' los ');

    
$str str_replace($search' 'strtolower($str));

    
$search = array('Á''É''Í''Ó''Ú''á''é''í''ó''ú''Ü''ü''Ñ''ñ''_''-');

    
$replace = array('a''e''i''o''u''a''e''i''o''u''u''u''n''n'' '' ');

    
$str str_replace($search$replacestrtolower(trim($str)));
    
    
$str preg_replace("/[^a-zA-Z0-9\s]/"''$str);
    
$str preg_replace('/\s\s+/'' '$str);
    
$str str_replace(' ''-'$str);

    return 
$str;


El problema está en los acentos, se borran en vez de sustituirse por cualquier vocal sin el acento.

¿Cuál puede ser el problema si la función parece sustituir bien?
__________________
@jslirola - Programador Web Freelance.