Avrei la necessità di inserire del codice PHP all'interno di un DB MySQL, questo codice deve essere preso dal DB e poi eseguito come codice PHP normalmente.
Si puo fare??
Avrei la necessità di inserire del codice PHP all'interno di un DB MySQL, questo codice deve essere preso dal DB e poi eseguito come codice PHP normalmente.
Si puo fare??
Si per eseguire una stringa come codice php devi usare la funzione eval(Stringa)
![]()
ho provato con l'eval() e sembra funzionare tutto, ma ho un problema.
l'eval() viene eseguita all'interno di una funzione che lavora con un DB, il problema è che inserendo nel codice, che verrà processato tramite l'eval(), una istruzione di tipo ECHO succede che l'output ottenuto viene visualizzato oltre che alla posizione dove esso deve andare ma anche nella header, ossia al momento in cui viene richiamato il file include che contiene la funzione, quindi il codice viene eseguito anche senza che sia stata richiamata l'esecuzione della funzione che lo contiene.
è possibile risolvere il problema?
dentro la funzione faccio così:
if ($rs_pagine['code_php']==1) {
return eval($pre);
} else {
return $pre;
}
nel database ho messo un flag che imposto se il record contiene o no del codice PHP, ma l'output mi viene restituito due volte, uno quando viene incluso il file e l'altro quando viene richiamata la funzione.
ho trovato questa funzione e pare che risolve proprio il mio problema
Codice PHP:
function eval_buffer($string) {
ob_start();
eval("$string[2];");
$ret = ob_get_contents();
ob_end_clean();
return $ret;
}