¿Dividir y reemplazar cosas con PHP y preg_replace en lugar de explotar?
Tengo un código PHP + HTML como una cadena que contiene funciones. Quiero que algunas llamadas de función sean reemplazadas con contenido incluido. Reúna muchos archivos en uno.
Breve ejemplo: antes
<html>
<?php myclass->my_function('one', 'two', 'three'); ?>
<h1>Content in between</h1>
<?php myclass->my_function('1', '2'); ?>
</html>
Breve ejemplo: reemplazar contenido
<html>
<?php run('one', 'two', 'three'); /* Run does include a file */ ?>
<h1>Content in between</h1>
<?php run('1', '2'); /* Run does include a file */ ?>
</html>`
Breve ejemplo: después
<html>
<?php
/* Start my_function */
echo 'This is the result of my_function one two three';
/* End my_function
?>
<h1>Content in between</h1>
<?php
/* Start my_function */
<?php myclass->my_function('four', 'five', 'six'); ?>
/* End my_function
?>
</html>
Tenga en cuenta que myclass se encuentra en el contenido incluido. El resultado debe analizarse nuevamente.
Breve ejemplo: después de eso
Todo esto se analiza nuevamente y reemplaza el myclass con contenido incluido.
<html>
<?php
/* Start my_function */
echo 'This is the result of my_function one two three';
/* End my_function */
?>
<h1>Content in between</h1>
<?php
/* Start my_function */
echo 'four five six';
/* End my_function */
?>
</html>
Traté de hacer esto con explotar pero fue muy complejo. Es posible que los dos pasos "Reemplazar contenido" y "Después" deban realizarse en un solo movimiento.
Míralo como una cuerda. ¿Puede preg_replace resolver esto? ¿Cómo?