Foros del Web » Programando para Internet » PHP »

Caracteres españoles en nombre de archivo

Estas en el tema de Caracteres españoles en nombre de archivo en el foro de PHP en Foros del Web. Buenas, estoy realizando unos códigos para generar archivos csv, para exportar datos entre distintas plataformas de mi trabajo. En una de ellas se me presenta ...
  #1 (permalink)  
Antiguo 22/01/2012, 21:36
Avatar de ramiro_md  
Fecha de Ingreso: septiembre-2008
Mensajes: 274
Antigüedad: 16 años, 2 meses
Puntos: 26
Caracteres españoles en nombre de archivo

Buenas, estoy realizando unos códigos para generar archivos csv, para exportar datos entre distintas plataformas de mi trabajo.

En una de ellas se me presenta una situación particular. Mi código crea los archivos con nombres que figuran en la base de datos. El problema esta cuando uno de esos nombres contiene una "ñ", el archivo no se crea. Intenté con str_replace() pero no funciona, posiblemente haya alguna otra forma de referenciar la "ñ", tal vez con su correspondiente ASCII.

Mi código por ahora es este:

index.php
Código PHP:
while ( $c $cohortes->fetch_object() ){
    echo 
"Pasada: ".$c->id."<br/>";
    
$archivo $csv.getCohortName($link,$c->id).".csv";
    echo 
$archivo."<br>";
    
$handler fopen($archivo,'w+');
    echo( 
$handler == FALSE ) ? "<b>Apertura fallida.</b></br>" "<b>Apertura exitosa.</b></br>"
    
fclose($handler);
    

Código PHP:
function getCohortName($l,$id){
    
$result $l->query("SELECT c.name FROM mdl_cohort AS c WHERE c.id = $id");
    
$name $result->fetch_object();
    return 
str_replace("ñ""ni"$name->name);

Como veran así es como implemento str_replace():
Código PHP:
str_replace("ñ""ni"$name->name); 
Pero al parecer no identifica la "ñ", por consiguiente deja la string tal cual y como esta. Provocando que el fichero no se cree.
Esta es la salida de los echos:
Cita:
Pasada: 1
/media/Datos/www/export/files/csv/Primer Año.csv
Apertura fallida.
Pasada: 2
/media/Datos/www/export/files/csv/Segundo Año.csv
Apertura fallida.
Pasada: 3
/media/Datos/www/export/files/csv/Tercer Año.csv
Apertura fallida.
Pasada: 4
/media/Datos/www/export/files/csv/Cuarto Año.csv
Apertura fallida.
Pasada: 5
/media/Datos/www/export/files/csv/Quinto Año.csv
Apertura fallida.
Pasada: 6
/media/Datos/www/export/files/csv/Sexto Año.csv
Apertura fallida.
Pasada: 7
/media/Datos/www/export/files/csv/Plantel Docente.csv
Apertura exitosa.
Agradecería cualquier tipo de ayuda jeje.
Desde ya muchas gracias.
  #2 (permalink)  
Antiguo 27/01/2012, 01:00
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 14 años, 2 meses
Puntos: 331
Respuesta: Caracteres españoles en nombre de archivo

Supongo que también deberías quitar los espacios. Para el tema ASCII puedes usar esto:
http://de2.php.net/manual/en/function.ord.php
Saludos
__________________
Fere libenter homines, id quod volunt, credunt.

Etiquetas: caracteres, españoles, nombre
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 18:48.