Foros del Web » Programando para Internet » PHP »

Leer archivo de texto en servidor

Estas en el tema de Leer archivo de texto en servidor en el foro de PHP en Foros del Web. Hola a tod@s! Bueno lo que quiero hacer es simple, pero no doy con la solucion. Quiero leer un archivo de texto que se encuentra ...
  #1 (permalink)  
Antiguo 29/03/2011, 11:08
 
Fecha de Ingreso: febrero-2010
Mensajes: 85
Antigüedad: 14 años, 2 meses
Puntos: 0
Leer archivo de texto en servidor

Hola a tod@s!

Bueno lo que quiero hacer es simple, pero no doy con la solucion.
Quiero leer un archivo de texto que se encuentra en un servidor externo y guardar su contenido en una variable.
El código que tengo es este:

Código PHP:
<?php
    date_default_timezone_set
('GMT');
    
$fecha date("Y-m-j");
    
    
$nombre_archivo="log ".$fecha.".txt";
    
$ruta="http://ruta_completa/".$nombre_archivo;
    
    
$f=fopen($ruta,"r") or die ("No se pudo abrir el archivo");
    
$contenido fread($f,filesize($ruta)) or die ("No se puede leer el archivo");
    echo 
$contenido;
    
    
fclose($f);

?>
La variable ruta esta perfectamente. El problema es que me sale el mensaje "No se puede leer el archivo" y no se por que.
Algo estaré haciendo mal en el fread.

Alguien me puede ayudar??? Muchas gracias!
  #2 (permalink)  
Antiguo 29/03/2011, 11:37
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Leer archivo de texto en servidor

debes tener configurado allow_url_fopen en el php.ini para que funcione, ¿todo bien?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 30/03/2011, 02:50
 
Fecha de Ingreso: febrero-2010
Mensajes: 85
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Leer archivo de texto en servidor

Gracias por contestar pateketrueke.
Lo que hecho es crear un php.ini y subirlo a mi servidor.
Dentro de ese archivo puse: allow_url_fopen=on;
Con el php.ini no me deja leer pero me muestra unos mensajes:

Warning: filesize() [function.filesize]: stat failed for http://ruta.com/archivo.php on line 10

Warning: fread() [function.fread]: Length parameter must be greater than 0 in /home/public_html/ruta/archivo.php on line 10.
No se puede leer el archivo


No encuentro ningún problema de sintaxis en el código. Alomejor me falta algo en el php.ini.
Mi hosting es siteground.

¿Alguien ve algún fallo?
  #4 (permalink)  
Antiguo 30/03/2011, 04:56
 
Fecha de Ingreso: enero-2007
Mensajes: 146
Antigüedad: 17 años, 3 meses
Puntos: 16
Respuesta: Leer archivo de texto en servidor

Compruebas con un phpinfo() que la flag que has modificado no la está ignorando??
  #5 (permalink)  
Antiguo 31/03/2011, 06:16
 
Fecha de Ingreso: febrero-2010
Mensajes: 85
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Leer archivo de texto en servidor

WeSorz he hecho un phpinfo() y por lo visto el php.ini dio resultado. Hay una línea que pone:
allow_url_fopen On

Aún asi sigo sin poder abrir un fichero con fopen. La verdad que ya no se si es un problema de configuración o de sintaxis.
  #6 (permalink)  
Antiguo 31/03/2011, 06:32
 
Fecha de Ingreso: enero-2007
Mensajes: 146
Antigüedad: 17 años, 3 meses
Puntos: 16
Respuesta: Leer archivo de texto en servidor

Prueba con file_get_contents.

También probaría quitando de tu código el filesize, y pondría un tamaño de palabra fijo y abriendo el fichero en modo binario "rb".
  #7 (permalink)  
Antiguo 31/03/2011, 11:01
 
Fecha de Ingreso: febrero-2010
Mensajes: 85
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Leer archivo de texto en servidor

He probado como me dijiste WeSoRz, quitando el filesize y poniendo un número ( he probado tanto con números grandes como pequeños) pero el navegador me manda el siguiente error

Bad Request
Your browser sent a request that this server could not understand.
The request line contained invalid characters following the protocol string


Básicamente creo que dice que el navegador no puede entender el contenido del fichero.

Creo que probaré con file_get_contents, ya que el fopen me está dando mucha lata.

Saludos y muchas gracias!!
  #8 (permalink)  
Antiguo 31/03/2011, 11:10
 
Fecha de Ingreso: febrero-2010
Mensajes: 85
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Leer archivo de texto en servidor

Bueno... he probado con file_get_contents y me dice lo mismo

Bad Request
Your browser sent a request that this server could not understand.
The request line contained invalid characters following the protocol string
.

Me extraña que no pueda ver un archivo simple de texto de ninguna manera.
Vuelvo a copiar mi código php con los cambios que he hecho.
Código PHP:
Ver original
  1.     $fecha = date("Y-m-j");
  2.    
  3.     $nombre_archivo="log ".$fecha.".txt";
  4.     $ruta="http://ruta.com/backup_logs/".$nombre_archivo;
  5.     $archivo=file_get_contents($ruta);
  6.     echo $archivo;

La ruta esta bien, si la imprimo por pantalla con un "echo" la copio y la pego en el navegador, puedo ver el contenido del archivo en el navegador.

Seguiré investigando.... Muchas gracias!
  #9 (permalink)  
Antiguo 31/03/2011, 11:21
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Leer archivo de texto en servidor

¿usa caracteres especiales la URL que utilizas?

porque entiendo que un espacio no esta del todo permitido, si copias dicha URL y la pegas en tu navegador funciona, porque internamente el navegador hace los reemplazos pertinentes...

por ejemplo, si usas un espacio intenta reemplazarlo por su equivalente valido: %20
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 01/04/2011, 04:23
 
Fecha de Ingreso: febrero-2010
Mensajes: 85
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Leer archivo de texto en servidor

Gracias pateketrueke!!!!!!!!!!!!! había un espacio en la URL y lo sustituí por %20.
Ahora se guarda todo el archivo de texto en una variable y me muestra su contenido.
Muchas graciassss!!! y perdona si doy mucho el coñazo con fallos tontos como este

Etiquetas: servidor
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:47.