您知道print_r
如何接受可选的第二个参数,如果设置为true
将返回结果而不是打印结果吗?
我希望include
接受第二个参数,它将以相同的方式工作。
它不是那么可用的替代品是什么?如何将文件包含到变量中?
答案 0 :(得分:7)
ob_start()
和ob_get_clean()
会为您做到这一点:
ob_start();
include "file.php";
$result = ob_get_clean();
在ob_start()之后捕获所有回显的内容,并使用ob_get_clean()来检索捕获的数据。
您甚至可以执行include2
这样的功能:
function include2($file) {
ob_start();
include $file;
return ob_get_clean();
}
并像这样使用它:
include2("file.php"); // return all printed values instead of really printing them
正如@ircmaxell所指出的,这个include2
函数与include
的行为并不完全相同,因为包含的范围发生了变化(从全局到函数的范围)。因此,如果您依赖全局范围,这可能会破坏事物。
答案 1 :(得分:0)