Выполните файл PHP и верните результат в виде строки

Предположим, что у меня есть следующий файл - template.php:

<?php $string = 'Hello World!'; ?>
<html>
    <head>
        <title>Test Page!</title>
    </head>
    <body>
        <h1><?= $string; ?></h1>
        <p>You should see something above this line</p>
    </body>
</html>

Я знаю, что я могу использовать file_get_contents(), чтобы получить содержимое файла в виде строки, которое я могу затем манипулировать по мере необходимости. Однако file_get_contents() не выполняет инструкции PHP.

Я успешно использовал cURL, чтобы получить доступ к рендеринговой версии файла, но он выглядит довольно медленным и неуклюжим, добавляя довольно много времени на выполнение страницы, что, как я думаю, связано с DNS поиск выполняется.

Итак, как я могу получить содержимое template.php в строку - при использовании там PHP?

Ответы

Ответ 1

Это должно сделать это:

ob_start();
include('template.php');
$returned = ob_get_contents();
ob_end_clean();

Ответ 2

Если вам не нужно делать это в PHP, вы можете выполнить php script из командной строки и передать его в текстовый файл, например:

php -f phpFile.php > output.html