Должен делать то, что вы хотите.

я есть 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 решить эту проблему? Как?

Ответы на вопрос(1)

Ваш ответ на вопрос