【问题标题】:Saving the result of an included PHP script as a variable [duplicate]将包含的 PHP 脚本的结果保存为变量 [重复]
【发布时间】:2026-02-03 03:05:01
【问题描述】:

可能重复:
Capture STDOUT from included file to variable

好的,也许这措辞不够好......

这就是我想要做的:我想将执行的 PHP 文件的结果源代码包含到另一个 PHP 文件中,以便可以对其进行操作和重用。结果输出需要合并几个 $_GET 变量的值,而要包含的 PHP 文件的执行取决于它们的值。因此,我需要将生成的源代码(当您在浏览器中转到“查看源代码”时看到的内容)包含到另一个 PHP 文件中,例如:“index.php?page=1&id=1&etc=something” ...有什么想法吗?


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

【问题讨论】:

  • 你能举个例子说明你想要达到的目标吗?
  • 使用var_export
  • 由于没有先进行搜索以及没有正确描述问题而导致令人厌烦的重复而被否决,根据下面的 cmets,该问题是捕获包含文件的输出。
  • 责备 Google 在此站点或任何其他站点上没有找到任何有用的内容。下次我会直接在这里搜索。煨一下。
  • 我想这不是谷歌,而是某人的搜索技能......

标签: php variables include


【解决方案1】:
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' 不会干扰主脚本的常量和函数。

【讨论】:

  • 工作出色,谢谢!
  • +1000000(如果可以的话)对于 not 使用带有 include 的括号
  • 实际上......虽然这对于名为“index.php”的文件非常有效,但如果我将任何内容附加到该文件(比如“index.php?page=1&id=1”例如),include、virtual 和 file_get_contents 都不能成功包含结果输出......有什么想法吗?
  • @Phil ... 因为 include 是一种语言结构而不是函数?这是我最好的外行猜测,为什么你会在你的投票中如此慷慨:)
  • @MattPayne anything to that 添加 GET 参数应该适用于 virtualfile_get_contents。对于include,您必须在脚本中“定义”这些变量。像$_GET['page'] = 1; 等在包含之前。 include 与服务器的文件系统一起使用,并且对您尝试传输参数的方式“一无所知”。
【解决方案2】:
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"

【讨论】:

    【解决方案3】:

    看看输出控制函数@PHP link

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

    【讨论】:

      最近更新 更多