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
codice:
pciao mondo/p
Come è possibile? Eppure non ho toccato l'espressione regolare (che cerca tutti i tag o simil tali).

Qualcuno sa aiutarmi?