Php 保存一个include';输出到字符串?
可能重复:Php 保存一个include';输出到字符串?,php,Php,可能重复: 如果我有 <?php include "print-stuff.php"; ?> print-stuff.php包含php/HTML模板,这意味着当包含它时,HTML会被打印出来。有没有办法将HTML捕获为字符串,以便我可以将其保存到其他地方使用 将include语句移到别处不是一个选项,因为print-stuff.php还执行周围代码所依赖的逻辑(创建/修改变量)。我只想移动文件的输出,同时保持其逻辑不变。看看输出缓冲 您可以使用它来确保HTML没有显示,而是放在一个
如果我有 <?php include "print-stuff.php"; ?> print-stuff.php包含php/HTML模板,这意味着当包含它时,HTML会被打印出来。有没有办法将HTML捕获为字符串,以便我可以将其保存到其他地方使用
将include语句移到别处不是一个选项,因为print-stuff.php还执行周围代码所依赖的逻辑(创建/修改变量)。我只想移动文件的输出,同时保持其逻辑不变。看看输出缓冲 您可以使用它来确保HTML没有显示,而是放在一个变量中。(PHP仍将运行,但HTML输出将包含在变量中)
..如果在缓冲区而不是标准输出中打印,则可以执行此操作
ob_start();
include 'print-stuff.php';
$printedHTML = ob_get_clean();
老实说,我来了又走啊哈,我知道答案!!!然后我往下看,看到其他人比我先到了 但是,见鬼,我确实喜欢这样:
ob_start();
include 'something.php';
$output = ob_get_contents();
ob_end_clean();
重复问题:我不确定问题是否重复,但两个问题的答案是相同的。如果我认为这是重复的,我的声誉还不足以解决这个问题:(是的!这正是我想要的。-1这个答案不是真的错了吗?它不只是加载源代码吗?至少要获得输出,而不是源代码,它应该是
/url/not/path/to/script.php
。但即使这样,问题也表明这包括了一些先决条件,这些先决条件是ur无法处理的l
解决方案。这个答案让我查了一下——似乎p4bl0在几分钟内的答案很好,但这真的让我困惑。足以让我在8年后评论它:D
$fileStr = file_get_contents('/path/not/url/to/script.php');
ob_start();
include 'something.php';
$output = ob_get_contents();
ob_end_clean();