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


Loading results into the buffer without echoing to the browser

如何使用PHP输出控制函数将循环结果加载到缓冲区中而不向浏览器返回结果?从本质上讲,我试图做的是从缓冲区调用结果,而不是在循环中"随着它的运行"重复我的方式。这可能吗?感谢任何帮助。谢谢!

使用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>

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

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

下面的内容:

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

我明白你想要什么了吗?