Buongiorno. Espongo subito il mio problema con un esempio.
Ho un file prova.html di questo tipo:
e un file prova.php così strutturato:codice:Codice html { $a['test'] } codice html
In pratica dovrebbe fare l'eval di qualunque stringa del tipo { espressionephp }.Codice PHP:<?
$a['test']="blabla";
$f = implode ("",file("prova.htm"));
echo preg_replace("/\{\s(.*)\s\}/e","$1",$f);
?>
Il problema è che, attivando tutti i warning, questo è l'output:
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.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
Avete qualche soluzione?
Grazie!!!![]()

Rispondi quotando