在PHP中获取包含在字符串中的结果?

时间:2009-11-28 23:55:11

标签: php include

假设文件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);
}

4 个答案:

答案 0 :(得分:56)

使用output buffering是最好的选择。


ob_start();
include 'test.php';
$output = ob_get_clean();

PS:请记住,如果需要,您也可以将输出缓冲区嵌套到心中。

答案 1 :(得分:8)

test.php的

<?php

return 'Hello World';

?>

<?php

$t = include('test.php');

echo $t;

?>

只要包含的文件有一个return语句就行了。

答案 2 :(得分:4)

您也可以让包含的文件返回输出,而不是打印它。然后你就可以把它变成一个变量,就像你在第二个例子中那样。

<?php
    return 'Hello world.';
?>

答案 3 :(得分:-4)

$test = file_get_contents('test.php');
echo $test; //Outputs "Hello world.";