Foros del Web » Programando para Internet » PHP »

Función file() no reconoce código PHP

Estas en el tema de Función file() no reconoce código PHP en el foro de PHP en Foros del Web. Hola a todos, Estoy cargando un archivo en un array usando la función file(). El problema es que si ese archivo tiene código PHP, por ...
  #1 (permalink)  
Antiguo 03/07/2005, 21:13
Avatar de Takitei  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 1.231
Antigüedad: 19 años, 7 meses
Puntos: 5
Función file() no reconoce código PHP

Hola a todos,

Estoy cargando un archivo en un array usando la función file(). El problema es que si ese archivo tiene código PHP, por ejemplo: <?php echo 'hola'; ?> entonces me imprime el código y no el valor del echo.

¿A qué se debe esto?...
__________________
Takitei
Ingeniarte.com
DannyHerran.com
"Dadme un punto de apoyo y moveré la tierra" - Arquímedes.
  #2 (permalink)  
Antiguo 03/07/2005, 21:29
Avatar de Takitei  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 1.231
Antigüedad: 19 años, 7 meses
Puntos: 5
Bueno... leyendo un poco en php.net me encontré con esta función que trata al código distinto... basándose en la función file(). Es llamada file_v2() y fue creada por Cory Christison:

Código PHP:
/*The file function will load the entire file before you can do anything to it [remove lines, explode() each line, and so on...]

I wrote a function [ file_v2() ] to help eliminate the restrictions of file(). Below are a few features/abilites file_v2() has over file().

file_v2() features:
 - uses an editable buffer size, for performance tweaking.
 - ability set maximum lines returned[from beginning]
 - optional automatically rtrim the line
 - optional ability to provide a callback function for each array element

Here is the code:*/

function file_v2($filename$return_max_lines=500$callback_func=null$do_rtrim=true$buffer_size=1024){

  
// open file pointer
  
$open=fopen($filename'rb');

  
// start an array
  
$open_data=array();

  
// start an internal line counter
  
$line=0;

  
// begin the loop
  
while(!feof($open)){
    if(
$do_rtrim){
      
// add line to array, do an rtrim()
      
$open_data[$line]=rtrim(fgets($open$buffer_size));
    }else{
      
// add line to array
      
$open_data[$line]=fgets($open$buffer_size);
    }

    if(
$callback_func!=null && function_exists($callback_func)){
      eval(
$callback_func '($open_data[$line]);');
    }

    
// +1 to the internal line counter
    
$line++;
      
    if(
$return_max_lines>0){
      if(
$line >= $return_max_lines){
        break;
      }
    }
  }

   
// close the file pointer
  
fclose($open);

   
// return the data
  
return $open_data;


Sin embargo, después de usarla sigue sin reconocerme el código PHP que se encuentre dentro del archivo. ¿Qué puedo hacer para que sea interpretado el código que se encuentre dentro del archivo que estoy abriendo?
__________________
Takitei
Ingeniarte.com
DannyHerran.com
"Dadme un punto de apoyo y moveré la tierra" - Arquímedes.

Última edición por Takitei; 03/07/2005 a las 21:35
  #3 (permalink)  
Antiguo 04/07/2005, 11:54
 
Fecha de Ingreso: marzo-2003
Mensajes: 119
Antigüedad: 21 años
Puntos: 0
include?

"La sentencia include() incluye y evalúa el archivo especificado"
  #4 (permalink)  
Antiguo 04/07/2005, 12:22
Avatar de Takitei  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 1.231
Antigüedad: 19 años, 7 meses
Puntos: 5
Si, pero necesito cargar el código en memoria para hacerle modificaciones y luego imprimirlo. include() simplemente lo muestra, pero no lo carga en variables ni arrays.
__________________
Takitei
Ingeniarte.com
DannyHerran.com
"Dadme un punto de apoyo y moveré la tierra" - Arquímedes.
  #5 (permalink)  
Antiguo 04/07/2005, 13:05
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
..sería conveniente explicarás qué quieres hacer... En principio un archivo ó lo lees ó lo ejecutas, pareciera que tú buscas que lea una parte y ejecute otra.. dudo encuentres algo así y tendrás que ver tu manera de cómo hacerlo... y si necesitas ayuda explica el objetivo y la estructuta del archivo mismo... lo que creo podrías hacer es crear un archivo con ese código que quieres que se ejecute y... ejecutarlo . Simple...

Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #6 (permalink)  
Antiguo 04/07/2005, 17:26
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 18 años, 10 meses
Puntos: 2
Hola que tal, leyendo un poco encontre algo que talvez te sirva de algo, es la función eval()...
http://ar.php.net/manual/es/function.eval.php

Pero concretamente que es lo que quieres hacer?.

Saludos.
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:44.