Ответ 1
Использование буферизация вывода - лучшая ставка.
ob_start();
include 'test.php';
$output = ob_get_clean();
PS: Помните, что вы можете также вставлять выходные буферы в ваше сердце и, если необходимо,
Скажем, файл test.php выглядит так:
<?php
echo 'Hello world.';
?>
Я хочу сделать что-то вроде этого:
$test = include('test.php');
echo $test;
// Hello world.
Может ли кто-нибудь указать мне правильный путь?
Edit:
Моя первоначальная цель состояла в том, чтобы вытащить PHP-код, смешанный с HTML, из базы данных и обработать его. Вот что я сделал:
// Go through all of the code, execute it, and incorporate the results into the content
while(preg_match('/<\?php(.*?)\?>/ims', $content->content, $phpCodeMatches) != 0) {
// Start an output buffer and capture the results of the PHP code
ob_start();
eval($phpCodeMatches[1]);
$output = ob_get_clean();
// Incorporate the results into the content
$content->content = str_replace($phpCodeMatches[0], $output, $content->content);
}
Использование буферизация вывода - лучшая ставка.
ob_start();
include 'test.php';
$output = ob_get_clean();
PS: Помните, что вы можете также вставлять выходные буферы в ваше сердце и, если необходимо,
test.php
<?php
return 'Hello World';
?>
<?php
$t = include('test.php');
echo $t;
?>
Пока включенный файл имеет оператор возврата, он будет работать.
Вы также можете включить включенный файл, а не распечатать его. Затем вы можете захватить его в переменную, как и в своем втором примере.
<?php
return 'Hello world.';
?>
$test = file_get_contents('test.php');
echo $test; //Outputs "Hello world.";