Foros del Web » Programando para Internet » PHP »

Problema con file()

Estas en el tema de Problema con file() en el foro de PHP en Foros del Web. HOla!, En una parte del código que desarrollo utilizo file() asi: Código PHP: $html  =  implode ( '' ,  file ( 'http://www.loquesea.es/lista2.php' )); echo  $html ...
  #1 (permalink)  
Antiguo 23/10/2007, 05:43
Avatar de javiro  
Fecha de Ingreso: febrero-2006
Mensajes: 48
Antigüedad: 18 años, 2 meses
Puntos: 1
Pregunta Problema con file()

HOla!,
En una parte del código que desarrollo utilizo file() asi:
Código PHP:
$html implode(''file('http://www.loquesea.es/lista2.php'));
echo 
$html
Esto funciona perfectamente en el servidor local de mi ordenador, pero no funciona en el servidor donde está alojado loquesea.es, ¿¿por que???
Gracias!!
  #2 (permalink)  
Antiguo 23/10/2007, 09:19
Avatar de javiro  
Fecha de Ingreso: febrero-2006
Mensajes: 48
Antigüedad: 18 años, 2 meses
Puntos: 1
Re: Problema con file()

Vale, me han contenstado los del hosting diciendome que esta funcion está desbilitada porque puede convertirse en una fuente de ataques por injeccion de codigo.
Me parece muy bien, pero necesito esta funcionalidad.

¿¿Alguien conoce alguna forma alternativa de hacerlo??

Lo que yo quiero conseguir es leer el resultado de un fichero php ejecutado por el servidor y, ese resultado, introducirlo en una variable.
  #3 (permalink)  
Antiguo 23/10/2007, 09:39
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 1 mes
Puntos: 17
Re: Problema con file()

Ejecutado por el mismo servidor o por otro? Si es por el mismo, podés usar include o require, si es por otro server todas las funciones se deshabilitan del mismo lugar, en general, así que no deberías tener acceso a ninguna otra, pero podés probar fopen, file_get_contents, fsockopen...
  #4 (permalink)  
Antiguo 23/10/2007, 10:18
Avatar de deet  
Fecha de Ingreso: mayo-2005
Ubicación: Córdoba - Argentina
Mensajes: 269
Antigüedad: 18 años, 11 meses
Puntos: 1
Re: Problema con file()

Estoy de acuerdo con Seppo

utiliza fopen para leer el resultado de una pagina de otro servidor.
  #5 (permalink)  
Antiguo 23/10/2007, 10:21
Avatar de javiro  
Fecha de Ingreso: febrero-2006
Mensajes: 48
Antigüedad: 18 años, 2 meses
Puntos: 1
Re: Problema con file()

Gracias Seppo.
Va a ser ejecutado en el mismo servidor.
Las funciones include o require no me sirven, porque con estas se obtiene el código php de determinada página, y yo lo que quiero es obtener el resultado de ejecutar ese código, o sea, el html que se obtiene si lo lee un navegador. No se si me explico.

Quiero meter en una variable una pagina php ya ejecutada.
Creo que lo mas adecuado es fopen, pero tampoco me funciona.
Como se haría con fopen???
  #6 (permalink)  
Antiguo 23/10/2007, 11:06
Avatar de javiro  
Fecha de Ingreso: febrero-2006
Mensajes: 48
Antigüedad: 18 años, 2 meses
Puntos: 1
Re: Problema con file()

Ya encontre la forma de hacerlo y que funcione!!!!
Pongo el código por si alguien tiene el mismo problema que yo:
Código PHP:
<?php
// Se crea un manejador CURL
$ch curl_init();

// Se establece la URL y algunas opciones
curl_setopt($chCURLOPT_URL"http://www.loquesea.es/lista2.php");
curl_setopt($chCURLOPT_HEADER0);
curl_setopt($chCURLOPT_RETURNTRANSFER1);

// Se obtiene la URL indicada
$html curl_exec($ch);

// Se cierra el recurso CURL y se liberan los recursos del sistema
curl_close($ch);

echo 
"res: <br>".$html;
?>
Gracias a la libreria CURL puedo meter el contenido ejecutado en una variable.
Alguien me concede algo de Karma???
  #7 (permalink)  
Antiguo 23/10/2007, 11:23
Avatar de deet  
Fecha de Ingreso: mayo-2005
Ubicación: Córdoba - Argentina
Mensajes: 269
Antigüedad: 18 años, 11 meses
Puntos: 1
Re: Problema con file()

prueba con esto:
Código PHP:
<?php
//ruta absoluta del archivo
$path 'http://localhost/ruta/';
//nombre del archivo
$nombre_archivo 'archivo.php';

//url absoluta del archivo
$archivo $path.$nombre_archivo;

//leo el archivo desde la ruta absoluta
$gestor fopen($archivo"r");
//con filesize() le el archivo con la ruta relativa
$contenido fread($gestorfilesize('nombre_archivo.php') );
fclose($gestor);
echo 
'  ';
echo 
$contenido;
?>

Última edición por deet; 23/10/2007 a las 11:24 Razón: legibilidad
  #8 (permalink)  
Antiguo 23/10/2007, 11:28
Avatar de javiro  
Fecha de Ingreso: febrero-2006
Mensajes: 48
Antigüedad: 18 años, 2 meses
Puntos: 1
Re: Problema con file()

Gracias deet!!
pero ya lo resolvi con la libreria CURL, anterior a tu respuesta.
  #9 (permalink)  
Antiguo 23/10/2007, 13:20
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 1 mes
Puntos: 17
Re: Problema con file()

Cita:
Iniciado por javiro Ver Mensaje
Gracias Seppo.
Va a ser ejecutado en el mismo servidor.
Las funciones include o require no me sirven, porque con estas se obtiene el código php de determinada página, y yo lo que quiero es obtener el resultado de ejecutar ese código, o sea, el html que se obtiene si lo lee un navegador. No se si me explico.
Por lo que entiendo no te sirve porque te "escupe" el resultado, en vez de guardarlo... si es así, podés usar funciones de output buffering para recuperarlo... Creo que va a ser más rápido que abrirlo por http

Código PHP:
ob_start();
include(
'pagina.php');
$pagina ob_get_contents();
ob_end_clean(); 
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 17:03.