Buongiorno. Espongo subito il mio problema con un esempio.
Ho un file prova.html di questo tipo:
codice:
Codice html
{ $a['test'] }
codice html
e un file prova.php così strutturato:
Codice PHP:
<?
$a['test']="blabla";
$f = implode ("",file("prova.htm"));
echo preg_replace("/\{\s(.*)\s\}/e","$1",$f);
?>
In pratica dovrebbe fare l'eval di qualunque stringa del tipo { espressionephp }.
Il problema è che, attivando tutti i warning, questo è l'output:
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /var/www/ciao/prova.php(4) : regexp code on line 1
Warning: Unexpected character in input: ''' (ASCII=39) state=1 in /var/www/ciao/prova.php(4) : regexp code on line 1
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /var/www/ciao/prova.php(4) : regexp code on line 1
Warning: Unexpected character in input: ''' (ASCII=39) state=1 in /var/www/ciao/prova.php(4) : regexp code on line 1
Notice: Use of undefined constant test - assumed 'test' in /var/www/ciao/prova.php(4) : regexp code on line 1
blabla
preg_replace() dovrebbe fare l'escape dell'apice automaticamente, ma è come se php non riuscisse a parsare né il carattere di escape, né il backslash.
Avete qualche soluzione?
Grazie!!!