Скажем, файл test.php выглядит так:
<?php echo 'Hello world.'; ?>
Я хочу сделать что-то вроде этого:
$test = include('test.php'); echo $test; // Hello world.
Может ли кто-нибудь указать мне правильный путь?
Редактировать:
Моя первоначальная цель заключалась в том, чтобы вывести 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.";