0

如何使用 PHP 输出控制函数将循环结果加载到缓冲区而不将结果回显到浏览器?本质上,我想要做的是从缓冲区调用结果,而不是在循环中“按时”回显我的方式。是否有可能做到这一点?任何帮助表示赞赏。谢谢!

4

2 回答 2

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>
于 2013-06-12T18:48:24.657 回答
1

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

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

这些方面的东西:

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

我知道你在追求什么吗?

于 2013-06-12T19:01:26.847 回答