У меня есть PHP + HTML-код в виде строки, содержащей функции. Я хочу, чтобы некоторые вызовы функций были заменены включенным контентом. Объедините много файлов в один.
Краткий пример - До
<html>
<?php myclass->my_function('one', 'two', 'three'); ?>
<h1>Content in between</h1>
<?php myclass->my_function('1', '2'); ?>
</html>
Краткий пример - Замена содержимого
<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>`
Краткий пример - после
<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>
Обратите внимание, что myclass обнаружен во включенном контенте. Результат нужно снова проанализировать.
Краткий пример - После этого
Все это снова анализируется, и он заменяет myclass включенным содержимым.
<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>
Я пытался сделать это с помощью Explode, но это оказалось сложным. Возможно, два шага «Замена содержимого» и «После» могут быть выполнены за один ход.
Посмотрите на это как на строку. Может ли preg_replace решить эту проблему? Как?