将PHP Virtual()的输出保存到String

时间:2015-11-19 18:24:19

标签: php

有没有办法从PHP Virtual()获取输出?

ob_start()
virtual();
ob_end_flush(); 

在我的情况下不起作用。

2 个答案:

答案 0 :(得分:1)

根据手册http://php.net/manual/en/function.virtual.php

  

要运行子请求,将终止所有缓冲区并将其刷新到   浏览器,也会发送待处理的标题。

我能想到的一种方法是创建一个单独的文件并加载:

// virtual.php
virtual('/path/to/whatever');

然后,无论您想要获取内容,请将其加载:

// other.php
$string = file_get_contents('http://www.example.com/path/to/virtual.php');

答案 1 :(得分:0)

使用obj_end_flush()停止输出缓冲并删除缓冲输出。 你可能想要的是:

ob_start();
virtual();
$output = ob_get_clean();

$output包含缓冲输出,因为ob_get_clean()停止输出缓冲并返回缓冲输出而不是删除它。

PHP manual ob_end_flush()

PHP manual ob_get_clean()