Foros del Web » Programando para Internet » PHP »

Problema función para URL amigable.

Estas en el tema de Problema función para URL amigable. en el foro de PHP en Foros del Web. Buenas, tenga esta función para convertir cadenas a amigables: Código PHP: function  amigable ( $str ) {      $search  = array( '<' ,  '>' ,  '"' ,  ...
  #1 (permalink)  
Antiguo 23/06/2009, 08:44
Avatar de newboy_master  
Fecha de Ingreso: enero-2008
Ubicación: Granada
Mensajes: 882
Antigüedad: 16 años, 2 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.
  #2 (permalink)  
Antiguo 23/06/2009, 08:48
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Problema función para URL amigable.

Probe el codigo y las convirtio bien.
  #3 (permalink)  
Antiguo 23/09/2009, 10:05
 
Fecha de Ingreso: octubre-2008
Mensajes: 12
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Problema función para URL amigable.

Así funciona bien:

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');
    
    
$search = array('Á''É''Í''Ó''Ú''á''é''í''ó''ú''Ü''ü''Ñ''ñ''_''-');
    
$replace = array('a''e''i''o''u''a''e''i''o''u''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));

    
$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;

  #4 (permalink)  
Antiguo 19/11/2009, 13:33
Avatar de kalvinman  
Fecha de Ingreso: octubre-2006
Ubicación: Bogota Colombia
Mensajes: 849
Antigüedad: 17 años, 6 meses
Puntos: 22
Respuesta: Problema función para URL amigable.

Nuevamente Foros del Web es mi salvación, gracias llevaba mucho buscando una función como esta para mis urls. xD
  #5 (permalink)  
Antiguo 20/12/2009, 03:57
Avatar de damargon  
Fecha de Ingreso: junio-2003
Ubicación: Madrid
Mensajes: 386
Antigüedad: 20 años, 10 meses
Puntos: 3
Respuesta: Problema función para URL amigable.

Hola foreros,

En la función utilizáis al final para sustituir los espacios en blanco el guión alto "-".

¿No sería mejor utilizar el "_"? o lo del "-" se hace por alguna razón técnica.

A mí personalmente me parece más elegante el guión bajo.

Iluminadme por favor!!
  #6 (permalink)  
Antiguo 20/12/2009, 10:34
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 18 años, 5 meses
Puntos: 890
Respuesta: Problema función para URL amigable.

Tecnica no, mas bién orientado a SEO, existe quien dice que es mas recomendable los giones medios a los bajos para buen SEO.
__________________
Drupal Argentina
  #7 (permalink)  
Antiguo 20/12/2009, 10:37
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema función para URL amigable.

en realidad, todo es válido... no hay mejores "guiones" que otros...

PDTA: por cierto, bonito nombre para la función.... xD
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 22:21.