Tu peux toujours faire un file_get_content( ) sur le fichier créé, et faire un str_replace sur les '?><?php', non ?
Pour les regex, c'est surtout l'utilisation de l'option "e" que je condamne. Utilise plutot preg_replace_callback...tu n'a juste a créér une fonction supplementaire qui prends un tableau en argument, avec [0] => toute la capture, [1] la premiere, ...etc
Je te ferais un exemple si j'ai aps la flemme.