【问题标题】:Is is possible to get file output buffer without including the file?是否可以在不包含文件的情况下获取文件输出缓冲区?
【发布时间】:2015-03-05 05:11:12
【问题描述】:

是否可以获取文件输出缓冲区字符串以在后台执行文件而不是包含它?

目前这是我见过的唯一方法。见下面的代码;

ob_start();
include($file);
$html = ob_get_contents();
ob_end_clean();

但我有不想包含的文件列表。我只想在后台进程中执行文件以获取输出缓冲区字符串。

谁能帮帮我?

谢谢 淅淅沥沥

【问题讨论】:

  • 也许只是获取内容? file_get_contents()
  • 它不执行php标签。我需要一个带有 php 执行标签的字符串。我也已经检查了 eval() 。它并不完美。

标签: php buffer output-buffering


【解决方案1】:

如果你的文件是php,你需要使用include。对于多个文件,你可以使用我发现here这样的函数

function include_multi($files) {
    $files = func_get_args();
    foreach($files as $file)
        include($file);
}

然后调用它

include_multi("one.php", "two.php", ..);

此外,如果您想要纯文件内容(无需执行文件),您可以使用 file_get_contentsreadfile

【讨论】:

  • 我有带有 php 标签的 html 源文件。如果我包含文件,那么 html 将在我不想要的网络浏览器中呈现。我只想获取每个文件的缓冲区字符串。那么你能告诉我最好的解决方案吗?
  • 你可以使用 file_get_contents。
  • file_get_contents() 只返回字符串。不执行 php 标签。
  • 为此,您必须进行一些字符串操作,例如在 之间获取内容,然后使用 eval 执行该 php 代码。
  • 我也已经尝试过 eval 并以这种方式完成。我找到了另一种方法。我现在正在测试它。我想我已经解决了。我会尽快回答。但感谢您的帮助。赞赏!。
猜你喜欢
  • 2019-05-30
  • 1970-01-01
  • 2012-04-24
  • 2015-12-31
  • 2019-04-28
  • 2022-11-11
  • 2016-11-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多