Foros del Web » Programando para Internet » PHP »

codificacion de URI o URL

Estas en el tema de codificacion de URI o URL en el foro de PHP en Foros del Web. Hola, soy un aficionado en esto y tengo el siguiente problema: estoy leyendo los archivos del directorio del servidor con un script PHP utilizando readdir(), ...
  #1 (permalink)  
Antiguo 03/12/2007, 13:55
 
Fecha de Ingreso: diciembre-2007
Mensajes: 6
Antigüedad: 16 años, 4 meses
Puntos: 0
codificacion de URI o URL

Hola,

soy un aficionado en esto y tengo el siguiente problema:

estoy leyendo los archivos del directorio del servidor con un script PHP utilizando readdir(), los codifico con rawurlencode() y los escribo en la pagina como enlaces. O sea que al pulsar sobre el nombre vas al archivo en cuestion. Todo funciona correctamente cuando en el nombre del archivo no aparecen: á, ñ, º , etc; Pero cunado esta alguno de estos caracteres, me da "objeto no encontrado". Sin embargo, puedo borrarlos, renombrarlos, etc; desde otro script. Solo da error cunado intento acceder por url. He probado codificando estos caracteres como entidades HTML al escribir el enlace, pero no funciona.

A ver si alguien me podria hechar una mano

Gracias de antemano y un saludo
  #2 (permalink)  
Antiguo 03/12/2007, 18:02
 
Fecha de Ingreso: noviembre-2007
Mensajes: 157
Antigüedad: 16 años, 5 meses
Puntos: 3
Re: codificacion de URI o URL

Eso es problema del servidor web. Desde PHP lo único que puedes hacer es pasar su valor en hexadecimal. Algo así:

Código PHP:
$url 'http://www.example.com/eñe.html';
$url preg_replace('|([^A-Za-z0-9._:/-])|e','"%".bin2hex("\1")',$url); 
Y ya tienes $url lista para la salida.

Última edición por Lanselot; 03/12/2007 a las 18:08
  #3 (permalink)  
Antiguo 04/12/2007, 06:49
 
Fecha de Ingreso: diciembre-2007
Mensajes: 6
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: codificacion de URI o URL

Gracias por la idea.
Ya lo arreglé.
Saludos
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 21:29.