Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 保存一个include';输出到字符串?_Php - Fatal编程技术网

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();