将结果加载到缓冲区而不回显浏览器

时间:2013-06-12 18:44:22

标签: php buffer echo

如何使用PHP输出控制功能将循环结果加载到缓冲区中而不将结果回显到浏览器?从本质上讲,我正在尝试做的是从缓冲区调用结果,而不是通过循环“回归”。是否有可能做到这一点?任何帮助赞赏。谢谢!

2 个答案:

答案 0 :(得分:1)

使用ob_get_contents获取缓冲区内容而不发送它们。

清除缓冲区调用ob_end_clean

要同时执行这两项操作,请致电ob_get_clean

一个例子是

ob_start();
foreach ($results as $result){
     include("tmplate/to/render/a/result.php");
}
$resultHTML = ob_get_clean();

然后。

<div class='left-rail'><?= $resultHtml ?></div>

答案 1 :(得分:1)

目前还不清楚你的意思,但这里有一个基于过去php程序员经验的答案:PHP是一种完整的编程语言,因此你可以构建复杂的数据结构而不产生任何输出。如果您正在从数据库中读取行,则可以将它们读入数组,对数组执行任何操作,然后在准备好时生成输出。

如果您通过多个步骤扫描数组来生成输出,您可以逐步构建一个字符串(或更多,如果您需要的话),并在您知道时再次输出它们你想做什么。

这些方面的东西:

$output = "";
foreach ($my_array as $row) {
    $output .= "<li>".$row."</li>\n";
    // plus various checks etc.
}

我是否了解了你之后的想法?