Eseguire codice php contenuto in una variabile e salvarne il risultato in un'altra

  • Creatore Discussione Creatore Discussione marcomg
  • Data di inizio Data di inizio

marcomg

Utente Attivo
19 Nov 2011
204
0
16
PHP:
$codice = "<b> questo è un codice di esempio e <?php echo('sto provando a fare qualcosa</b>'); ?>!!";
$output = funzioneCheNonConosco($codice);
In questo caso $output dovrebbe contenere "<b> questo è un codice di esempio e sto provando a fare qualcosa</b>!!". Esiste una funzione del genere?
 
Non esiste una funzione già pronta per fare questo, potresti usare eval, ma non con la flessibilità dell'esempio che poni.

Di conseguenza ti ho scritto al volo una funzione che ti permette di ottenere il risultato che vuoi:
PHP:
function evalizer($code) {
    
    $filename = md5(microtime()) . '.php';
    file_put_contents($filename, $code);
    
    ob_start();
    include $filename;
    $output = ob_get_clean();
    unlink($filename);
    
    return $output;
}

Puoi usarla così:
PHP:
$codice = "<b> questo è un codice di esempio e <?php echo('sto provando a fare qualcosa</b>'); ?>!!";
$output = evalizer($codice);


Detto questo, ti suggerirei di fare attenzione all'utilizzo di questo genere di procedure perché permettono l'esecuzione arbitraria di codice esterno e possono quindi comportare gravi rischi alla sicurezza del software.
 
Allora la funzione la uso così:
PHP:
function evalizer($code) {
    ob_start();
    eval($code);
    $output = ob_get_clean();
    
    return $output;
}

Grazie :)
Per quanto riguarda i rischi della sicurezza del software non mi preoccupo perché non proviene lato utente ;)
 

Discussioni simili