Foros del Web » Programando para Internet » PHP »

caracteres en url

Estas en el tema de caracteres en url en el foro de PHP en Foros del Web. hola amigos de forosdelweb, mi consulta es la siguiente estoy haciendo una web de anucios, y por cada anuncio tengo por ejemplo midominio/anuncio/aqui_va_el_nombre_del_anuncio mi pregunta ...
  #1 (permalink)  
Antiguo 24/09/2011, 22:42
 
Fecha de Ingreso: agosto-2011
Ubicación: Argentina
Mensajes: 31
Antigüedad: 12 años, 8 meses
Puntos: 1
caracteres en url

hola amigos de forosdelweb, mi consulta es la siguiente
estoy haciendo una web de anucios, y por cada anuncio tengo por ejemplo

midominio/anuncio/aqui_va_el_nombre_del_anuncio

mi pregunta es que simbolos debo elliminar del titulo para que la url sea correcta
por ahora estoy cambiando espacios, puntos, comas por guion bajo

que hay acerca de los acentos simbolos como !"#$%&():, parentesis y demas
osea diganmen que caracteres deberia parsear
tambien tiene un buscador que usa el +

tambien agradeceria recomendaciones sobre la codificacion de la pagina, actualmente estoy usando utf-8 y tambien en mi db

desde ya muchas gracias, cualquier recomendacion sera bienvenida
  #2 (permalink)  
Antiguo 24/09/2011, 23:31
Avatar de Naahuel  
Fecha de Ingreso: marzo-2011
Ubicación: localhost
Mensajes: 796
Antigüedad: 13 años, 1 mes
Puntos: 192
Respuesta: caracteres en url

usá urlencode() y urldecode() por las dudas, pero si lo que querés es crear un "slug", yo he usado esta hecha por mi y me funciona siempre de maravillas. Claro que tenés que tratar de probar posibilidades y chequear "que pasa si pongo :) por ejemplo?"

Usa una expresión regular (no hecha por mi, pero no recuerdo de dónde la obtuve) para hacer la conversión y en caso de que (por algún motivo) el string esté en blanco, devuelve un número de la fecha en "Segundos desde la Época Unix (1 de Enero del 1970 00:00:00 GMT)" para asegurarse que sea único.

Código PHP:
Ver original
  1. function crear_slug($string) {
  2.     $return = strtolower(preg_replace('/[^a-zA-Z0-9-]+/', '-', $string));
  3.     $return = rtrim($return, '-');
  4.     if($return==''){
  5.         $return = date('U');
  6.     }
  7.     return $return;
  8. }
UTF-8 está perfecto, jamás me complicó.
__________________
nahueljose.com.ar
  #3 (permalink)  
Antiguo 24/09/2011, 23:41
 
Fecha de Ingreso: agosto-2011
Ubicación: Argentina
Mensajes: 31
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: caracteres en url

Cita:
Iniciado por Naahuel Ver Mensaje
usá urlencode() y urldecode() por las dudas, pero si lo que querés es crear un "slug", yo he usado esta hecha por mi y me funciona siempre de maravillas. Claro que tenés que tratar de probar posibilidades y chequear "que pasa si pongo :) por ejemplo?"

Usa una expresión regular (no hecha por mi, pero no recuerdo de dónde la obtuve) para hacer la conversión y en caso de que (por algún motivo) el string esté en blanco, devuelve un número de la fecha en "Segundos desde la Época Unix (1 de Enero del 1970 00:00:00 GMT)" para asegurarse que sea único.

Código PHP:
Ver original
  1. function crear_slug($string) {
  2.     $return = strtolower(preg_replace('/[^a-zA-Z0-9-]+/', '-', $string));
  3.     $return = rtrim($return, '-');
  4.     if($return==''){
  5.         $return = date('U');
  6.     }
  7.     return $return;
  8. }
UTF-8 está perfecto, jamás me complicó.

gracias por tu respuesta naahuel, te comento que no quiero usar urlencode y urldecode, porque la idea es que sea una url amigable
si la idea es crear un slug por cada titulo
por las dudas no sabrias si esta mal que en la url aparezcan la áéíóúñÑ ü?
saludos

Etiquetas: caracteres, url
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:48.