Получить результаты включения в строку в PHP?
Допустим, файл 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);
}
20
Author: Kirk Ouimet, 2009-11-29
4 answers
Использование буферизации вывода является лучшим выбором.
ob_start();
include 'test.php';
$output = ob_get_clean();
PS: Помните, что при необходимости вы также можете вложить выходные буферы в содержимое вашего сердца.
55
Author: Slashterix, 2014-06-13 10:56:07
Test.php
<?php
return 'Hello World';
?>
<?php
$t = include('test.php');
echo $t;
?>
Пока включенный файл содержит инструкцию return, он будет работать.
7
Author: Galen, 2009-11-29 06:21:09
Вы также можете сделать так, чтобы включенный файл возвращал выходные данные, а не печатал их. Затем вы можете записать его в переменную, как и во втором примере.
<?php
return 'Hello world.';
?>
4
Author: Atli, 2009-11-29 00:19:05
$test = file_get_contents('test.php');
echo $test; //Outputs "Hello world.";
-4
Author: pnm123, 2009-11-29 05:44:41