假设我有
<?php include "print-stuff.php"; ?>
print-stuff.php 包含PHP / HTML模板,这意味着当包含它时,HTML会被打印出来。有没有办法将HTML作为字符串捕获,以便我可以将其保存到其他地方使用?
将include语句移动到别处不是一个选项,因为 print-stuff.php 还执行周围代码所依赖的逻辑(创建/修改变量)。我只是想移动文件的输出,同时保持其逻辑原样。
答案 0 :(得分:28)
您可以Output Buffer确保HTML不会显示,而是放入变量中。 (PHP仍将运行,但HTML输出将包含在变量中)
ob_start();
include "print-stuff.php";
$contents = ob_get_contents();
ob_end_clean();
...
答案 1 :(得分:1)
老实说,我来到这里去啊哈,我知道答案!然后我低下头,看到其他人在我做之前就已经到了。
但是,对于它,我喜欢这样:
ob_start();
include 'something.php';
$output = ob_get_contents();
ob_end_clean();
答案 2 :(得分:0)
答案 3 :(得分:0)
如果您在缓冲区而不是标准输出中打印,则可以这样做。
ob_start();
include 'print-stuff.php';
$printedHTML = ob_get_clean();
答案 4 :(得分:-5)
$fileStr = file_get_contents('/path/not/url/to/script.php');