2012-05-20 15 views
5

Tengo un problema, quiero tomar texto y ejecutar texto como PHP, pero ¿cómo hago esto? Por ejemplo, tengo este código en un archivo .txt:Cómo ejecutar texto como PHP

$tweetcpitems->post('statuses/update', array('status' => wordFilter("The item Blue has    been released on Club Penguin."))); 
$tweetcpitems->post('statuses/update', array('status' => wordFilter("The item Green has been  released on Club Penguin."))); 

Ahora el problema es que cogí este texto y quiero ejecutarlo como un script PHP, ¿cómo puedo hacer esto? ¡Por favor ayuda!

+2

Espero que sepa que esta es una invitación a ser pirateado si lo hace con la intervención del usuario? –

+7

Si está preguntando cómo usar 'eval', debe ** definitivamente ** no usar' eval'. – rdlowrey

Respuesta

0

Puede evaluar el texto como PHP usando eval; ¡Sin embargo, lea a continuación un descargo de responsabilidad muy importante!

La construcción del lenguaje eval() es muy peligrosa porque permite la ejecución de código PHP arbitrario. Por lo tanto, se desaconseja su uso. Si ha verificado cuidadosamente que no hay otra opción que utilizar este constructo, preste especial atención a no pasar ningún dato proporcionado por el usuario sin antes validarlo adecuadamente.

// $result is a string containing PHP code. Be sure you trust the source of 
// the PHP code prior to running it! 
eval($result); 
0

Usted puede ejecutar tanto el texto como eval el mismo guión pero como se ha mencionado anteriormente. La seguridad debe ser muy estrecha. Sin embargo, la función de evaluación es realmente poderosa si la usas correctamente. Pruebe el código a continuación.

$b = 123; 
$a = "hello <?php echo 'meeeee'; ?>. I just passed $b from the mother script. Now I will pass a value back to the mother script" . '<?php $c; $c = 1 + 8; ?>' . 
    "I was call within a function, therefore my variable can't passed to the global script. Nonetheless, let try something globally" . 
    "<?php 
     global \$d; 
     \$d = 'I am now a global var. Take care though, don\\'t let anyone edit your file' ; 
     "; 

function parseTxtAsCode($invalue){ 
    if(!is_string($invalue)) return false; 
    eval('?>' . $invalue); 
    echo "\n\n\n\n Can't believe I got this from my child: $c \n"; 
} 

parseTxtAsCode($a); 
echo "\n\n\n I am global and this is what I got from the eval function: $d"; 
Cuestiones relacionadas