Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/11/2008, 11:50
Miguelso23
 
Fecha de Ingreso: abril-2008
Ubicación: en Montevideo
Mensajes: 25
Antigüedad: 16 años, 11 meses
Puntos: 0
Caracteres especiales en servidor Linux

Hola señores del Foro.

Necesito una ayudita en algo que realmente no se como solucionar y no he encontrado nada por la web!

Aquí les va el problema....
Resulta que tengo un script en php que examina un directorio y genera vínculos hacia los archivos de este para su descarga!

Si los nombres de los archivos están en minúsculas, sin espacios ni caracteres especiales todo bárbaro, el problema empieza cuando el nombre de los archivos no cumple con lo anterior, es decir, si tiene espacios y caracteres especiales...

... para esto hice la siguiente función:

Código PHP:
function adaptar($cadena,$sentido,$firefox) {
    
$original = array("Á","á","É","é","Í","í","Ó","ó","Ú","ú","Ñ","ñ"," ");
    if(
$firefox) {
        
$sustituto = array("%c3%81","%c3%a1","%c3%89","%c3%a9","%c3%8d","%c3%ad","%c3%93","%c3%b3","%c3%9a","%c3%ba","%c3%91","%c3%b1","%20");
    } else {
        
$sustituto = array("-A-","-a-","-E-","-e-","-I-","-i-","-O-","-o-","-U-","-u-","-N-","-n-","-_-");
    }
    for(
$i=0$i<count($original); $i++) {
        if(
$sentido) {
            
$cadena str_replace($original[$i],$sustituto[$i],$cadena);
        } else {
            
$cadena str_replace($sustituto[$i],$original[$i],$cadena);
        }
    }
    return 
$cadena;

...con esta función transformo el nombre del archivo en el vínculo para que no me de errores el servidor. Esto funciona en local, pero parece ser que la codificación que use (%c3%81 por ejemplo) no funciona en el servidor remoto donde tengo alojado el sitio, alguien sabe cual puede ser el problema? En local tengo windows 2000 y en el servidor remoto linux.

Gracias a todos y espero una respuesta!

Saludos