Foros del Web » Programando para Internet » PHP »

file_get_contents abrir archivo con tílde.

Estas en el tema de file_get_contents abrir archivo con tílde. en el foro de PHP en Foros del Web. Hola! Me he cabeceado con el siguiente problema y a riesgo de volver me loco, necesito saber la solucion file_get_contents solo me permite abrir archivos ...
  #1 (permalink)  
Antiguo 11/03/2015, 20:46
 
Fecha de Ingreso: mayo-2013
Mensajes: 23
Antigüedad: 11 años
Puntos: 0
file_get_contents abrir archivo con tílde.

Hola!

Me he cabeceado con el siguiente problema y a riesgo de volver me loco, necesito saber la solucion

file_get_contents solo me permite abrir archivos los cuales no contengan tílde en el nombre:

Ejemplo: archivo de nombre: Aduanas (5).xml
Código PHP:
Ver original
  1. <?php
  2.  
  3. header('Content-Type: text/html; charset=utf-8');
  4.  
  5.  
  6. $filename = 'C:\Users\Evairdesign\Desktop\XML\Ciudad (32) (CSV)\Aduanas (5).xml';
  7.  
  8. file_get_contents($filename);
  9.  
  10. ?>

Funciona perfecto... sin embargo cuando abro el archivo de nombre: Archivos públicos (5), con la tílde en la u, php me arroja un error en donde no se logra encontrar el archivo, siendo que mi archivo efectivamente tiene una tílde.

Código PHP:
Ver original
  1. <?php
  2.  
  3. header('Content-Type: text/html; charset=utf-8');
  4.  
  5.  
  6. $filename = 'C:\Users\Evairdesign\Desktop\XML\Ciudad (32) (CSV)\Archivos públicos (5).xml';
  7.  
  8. file_get_contents($filename);
  9.  
  10. ?>

¿Como puedo solucionar esto y abrir archivos con tíldes?

Agradecido de ante mano a esta gran comunidad.
  #2 (permalink)  
Antiguo 11/03/2015, 20:50
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: file_get_contents abrir archivo con tílde.

Probablemente tu problema sea de codificación en relación a tu script únicamente, sin embargo podría decirte más si compartes el mensaje de error completo.

Igual podrías revisar las funciones utf8_encode/decode por si acaso, pero entonces eso confirmaría lo anterior.

Adivinos no somos.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 11/03/2015, 20:59
 
Fecha de Ingreso: mayo-2013
Mensajes: 23
Antigüedad: 11 años
Puntos: 0
Respuesta: file_get_contents abrir archivo con tílde.

Es que el error es el típico de cuando no se encuentra un archivo.

Warning: file_get_contents(C:\Users\Evairdesign\Desktop\XML \Ciudad (32) (CSV)\Archivos públicos (5).xml): failed to open stream: No such file or directory in C:\wamp\www\XML\index.php on line 8

pero el archivo si existe, tal cual, el nombre esta correctamente escrito, al copiar y pegar el link en mi navegador, abre el archivo correctamente, pero no desde file_get_contents, al cambiar el nombre del archivo, por uno sin tílde, lo abre correctamente.

Codificaciones:
El archivo index.php esta en UTF-8
el navegador esta en Europa occidental (Windows-1252)
el archivo php contiene el header en UTF-8
  #4 (permalink)  
Antiguo 11/03/2015, 21:01
 
Fecha de Ingreso: mayo-2013
Mensajes: 23
Antigüedad: 11 años
Puntos: 0
Respuesta: file_get_contents abrir archivo con tílde.

Podrias ayudarme probando algún archivo con tílde desde tu ordenador, creo que no los abre.
  #5 (permalink)  
Antiguo 11/03/2015, 21:20
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: file_get_contents abrir archivo con tílde.

Pues no consigo replicar tu error, es decir, acabo de crear un archivo "único.txt" y me lo lee perfectamente:
Código PHP:
Ver original
  1. echo file_get_contents('único.txt');

Sigo pensando que tu problema es la codificación misma del script, me imagino que el index.php que mencionas es el mismo script que muestras ¿verdad?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 12/03/2015, 13:56
 
Fecha de Ingreso: mayo-2013
Mensajes: 23
Antigüedad: 11 años
Puntos: 0
Respuesta: file_get_contents abrir archivo con tílde.

Incluso con el código que tu me mandas me lanza un error, no entiendo por que, dentro del txt solo dice: "Hola mundo" todo en utf-8, automáticamente cuando cambio la pabra con tílde no la reconoce, sin tílde funciona perfecto, puede tener algo que ver con el php.ini?
  #7 (permalink)  
Antiguo 12/03/2015, 14:35
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: file_get_contents abrir archivo con tílde.

No tiene nada que ver con el php.ini, es un tema 100% de codificación, posiblemente al poner la ruta a mano no se coloca bien el carácter aunque tu editor de texto te de la falsa impresión de que es correcto.

Así que una "solución con código" no existe para tu problema, es algo que debes saber manejar cuando programas.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 13/03/2015, 03:35
Avatar de fbedia  
Fecha de Ingreso: julio-2010
Mensajes: 159
Antigüedad: 13 años, 9 meses
Puntos: 8
Respuesta: file_get_contents abrir archivo con tílde.

Si por casualidad usas notepad++, asegurate de que en herramientas -> codificacion de la pagina -> aqui tengas establecido UTF-8
__________________
Follow me on twitter @franbedia
  #9 (permalink)  
Antiguo 13/03/2015, 07:48
 
Fecha de Ingreso: mayo-2013
Mensajes: 23
Antigüedad: 11 años
Puntos: 0
Respuesta: file_get_contents abrir archivo con tílde.

Exactamente como decia @pateketrueke es un problema de codificacion del archivo, me di cuenta como dice @fbedia abriendo con notepad++.

1.- El index.php estaba escrito en codificación UTF-8/BOM, por eso no leía el archivo, no lo encontraba, lo cambié a ANSI en windows, sin embargo no entiendo por que este error.

¿Tiene alguna idea?
  #10 (permalink)  
Antiguo 16/03/2015, 05:28
Avatar de fbedia  
Fecha de Ingreso: julio-2010
Mensajes: 159
Antigüedad: 13 años, 9 meses
Puntos: 8
Respuesta: file_get_contents abrir archivo con tílde.

Cita:
Iniciado por evair Ver Mensaje
Exactamente como decia @pateketrueke es un problema de codificacion del archivo, me di cuenta como dice @fbedia abriendo con notepad++.

1.- El index.php estaba escrito en codificación UTF-8/BOM, por eso no leía el archivo, no lo encontraba, lo cambié a ANSI en windows, sin embargo no entiendo por que este error.

¿Tiene alguna idea?
Es que si la codificación no es la correcta, textos con acentos o caracteres raros no son bien interpretados. Por esa razon la pagina no encontraba tu archivo.

Por ejemplo, tu haces un include a "único.php" y tienes un archivo llamado asi, ok. Pero si la codificación no es la correcta, el archivo en realidad esta llamando a "&uacute;nico.php"
No se si me he explicado bien... y quizas no sea un ejemplo del todo correcto, peor +- es asi...

Yo para segurar, siempre uso la misma codificacion en TODOS los archivos de un proyecto... y nunca uso caracteres ni letras con acentos para nombrar un archivo.

Saludos.
__________________
Follow me on twitter @franbedia

Etiquetas: html
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:13.