Ответ 1
Это должно сделать это:
ob_start();
include('template.php');
$returned = ob_get_contents();
ob_end_clean();
Предположим, что у меня есть следующий файл - 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?
Это должно сделать это:
ob_start();
include('template.php');
$returned = ob_get_contents();
ob_end_clean();
Если вам не нужно делать это в PHP, вы можете выполнить php script из командной строки и передать его в текстовый файл, например:
php -f phpFile.php > output.html