Penso che il titolo dica già molto. Il ho questo codice:
codice:
function removeEvilAttributes($tagSource) {
// fai qualcosa
return $tagSource;
}
function AltraFunzione() {
// fai qualcos'altro
return preg_replace('/<(.*?)>/ie', "'<'.removeEvilAttributes('\\1').'>'", $source);
}
che funziona benissimo.
Ora, per passare alla versione di php 5.5, devo correggere questo modificatore /e perché non è più accettato.
Seguendo varie guide trovate su internet, ho provato questa strada, vista qui:
codice:
return preg_replace_callback('/<(.*?)>/i', function($m) { return removeEvilAttributes($m[1]); } , $source);
la cosa strana è che se io inserisco in input
codice:
<p>ciao mondo</p>
, ottengo in output
Come è possibile? Eppure non ho toccato l'espressione regolare (che cerca tutti i tag o simil tali).
Qualcuno sa aiutarmi?