将包含的PHP脚本的结果保存为变量


Saving the result of an included PHP script as a variable

可能重复:
将STDOUT从包含的文件捕获到变量

好吧,也许这句话没有说得那么好…

这就是我想做的:我想把一个执行的PHP文件的源代码包含到另一个PHP文件中,这样它就可以被操作和重用。生成的输出需要包含几个$_GET变量的值,并且要包含的PHP文件的执行取决于它们的值。因此,我需要像"index.php?page=1&id=1&etc=something"这样的文件的结果源代码(当你在浏览器中转到"查看源代码"时会看到)包含到另一个php文件中。。。有什么想法吗?


有没有办法包含一个PHP文件,然后将该文件的执行结果保存到包含该文件的PHP文件中的一个变量中,以便进一步使用?提前感谢。。。

ob_start();
include "your_script.php";
$content = ob_get_clean();

就是这样。但不应该定义调用脚本中已经定义的常量或函数。为了防止变量的更改,此代码可能位于函数体内部,因此"your_script.php"中的变量将在该函数的本地作用域中定义。另一种方法是执行http请求

$content = file_get_contents('http://your_server/script.php');

或者甚至(如果您使用Apache和php作为模块)

ob_start();
virtual("/webpath_from_server_root/your_script.php");
$content = ob_get_clean();

在这种情况下,"your_script.php"不会干扰主脚本的常量和函数。

ob_start();
include_once("your script");    
$result = ob_get_contents();
ob_end_clean();
// now $result has anything that was output from the inclusion of "your script"

查看输出控制函数@PHP链接。

<?php
  ob_start();
  include( 'yourscript.php' );
  $cache= ob_get_contents();
  ob_end_clean();
?>