Foros del Web » Programando para Internet » PHP »

Carácteres especiales

Estas en el tema de Carácteres especiales en el foro de PHP en Foros del Web. Lo siento por la ambigüedad del título, pero no se me ocurría nada mejor que poner. Tengo un script en PHP que pretende leer en ...
  #1 (permalink)  
Antiguo 25/01/2006, 11:35
 
Fecha de Ingreso: diciembre-2005
Ubicación: Redondela (Galicia)
Mensajes: 368
Antigüedad: 18 años, 4 meses
Puntos: 1
Carácteres especiales

Lo siento por la ambigüedad del título, pero no se me ocurría nada mejor que poner.
Tengo un script en PHP que pretende leer en un directorio para representar en el explorador sus archivos:
Código PHP:
<?php
$fotos_dir 
opendir("Normal");
while ((
$archivo readdir($fotos_dir)) !== false){
    if (
$archivo != "." && $archivo != ".."){
        echo 
"$archivo</br>";
    }
}
echo 
"</br></br></br></br>";
?>
Todo funciona bien en un principio, se listan todos los archivos de la carpeta "Normal". Pero el problema biene cuando uno de esos archivos tiene en su nombre ciertos carácteres (supongo que serán todos los no ANSI). Así "Valentín·$·.jpg" me lo representa en el explorador como "Valent�$?.JPG".
¿A que se puede deber este problema? ¿Como podría solucionarlo?
Gracias por vuestro tiempo.
  #2 (permalink)  
Antiguo 25/01/2006, 13:32
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
utiliza una funcion para sacar todos esos caracteres raros, yo no se muchos de expresiones regulares asi q me hice esta funcion
Código PHP:
function arreglar_nom($txt){
    
$txt strtolower(str_replace(" ","_",trim($txt)));
    
$txt str_replace("[","",$txt);
    
$txt str_replace("]","",$txt);
    
$txt ereg_replace("[àâáä]","a",$txt); 
    
$txt ereg_replace("[íìîï]","i",$txt);
    
$txt ereg_replace("[éèêë]","e",$txt);
    
$txt ereg_replace("[óòôõö]","o",$txt);
    
$txt ereg_replace("[úùûü]","u",$txt);
    
$txt ereg_replace("[-\!·$%&/()=?¿|@#¬€*+,\'\"><¡;:^¨`´ñ€{}]","",$txt);
    
$txt str_replace("ç","c",$txt);
    
$txt str_replace("..",".",$txt);
    
$txt str_replace("º","o",$txt);
    
$txt str_replace("°","o",$txt);
    
$txt str_replace("ª","a",$txt);
    return 
$txt;

espero te sirva
saludos
  #3 (permalink)  
Antiguo 27/01/2006, 11:20
 
Fecha de Ingreso: diciembre-2005
Ubicación: Redondela (Galicia)
Mensajes: 368
Antigüedad: 18 años, 4 meses
Puntos: 1
uffff eso no me sirve... Se debe mostrar TODO tal cual es, ya que los datos deben pasarse a un contenedor de Flash Player que abrirá los archivos (son fotos)...

Gracias de todos modos
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 16:04.