将包含的输出保存到字符串中?

时间:2009-08-17 15:33:22

标签: php

  

可能重复:
  Storing echoed strings in a variable in PHP

假设我有

<?php include "print-stuff.php"; ?>

print-stuff.php 包含PHP / HTML模板,这意味着当包含它时,HTML会被打印出来。有没有办法将HTML作为字符串捕获,以便我可以将其保存到其他地方使用?

将include语句移动到别处不是一个选项,因为 print-stuff.php 还执行周围代码所依赖的逻辑(创建/修改变量)。我只是想移动文件的输出,同时保持其逻辑原样。

5 个答案:

答案 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');