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

Php 将结果加载到缓冲区而不回显到浏览器,php,buffer,echo,Php,Buffer,Echo,如何使用PHP输出控制函数将循环结果加载到缓冲区,而不将结果回显到浏览器?本质上,我试图做的是从缓冲区调用结果,而不是在循环中“按原样”回显。有可能这样做吗?谢谢你的帮助。谢谢 用于获取缓冲区内容而不发送它们 清除缓冲区调用 在一步调用中完成这两项操作 例如 ob_start(); foreach ($results as $result){ include("tmplate/to/render/a/result.php"); } $resultHTML = ob_get_clean(

如何使用PHP输出控制函数将循环结果加载到缓冲区,而不将结果回显到浏览器?本质上,我试图做的是从缓冲区调用结果,而不是在循环中“按原样”回显。有可能这样做吗?谢谢你的帮助。谢谢

用于获取缓冲区内容而不发送它们

清除缓冲区调用

在一步调用中完成这两项操作

例如

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.
}
$output=”“;
foreach($my_数组作为$row){
$output.=“
  • ”“$row.”
  • \n”; //加上各种支票等。 }

    我知道您要做什么了吗?

    为什么不将输出保存到一个变量中,并在准备好时简单地回显该变量?“从缓冲区调用结果”?这意味着什么?@phpisuber:我正在迭代任何特定长度的整个数组,并且输出是基于条件的。要跟踪所有的变量是不可能的。我的代码会一团糟。我正在寻找一个简单的方法来解决这个问题。“基于条件”是什么意思?显然不是
    if(某物)echo“foo”或echo“bar”因为你不会问。显示一些代码或给出一个示例。@Shmuli您可以使用单个变量,并在每次迭代中将输出连接到它。当你的循环完成并且你感到高兴时,用echo输出它。输出缓冲是有目的的,但这不是其中之一。第一个回答是好的。第一个给出有意义的答案要好得多。@Orangepill:Jon指出这并不能解决这个问题。@Shmuli我只是想用他的措辞指的是这些名称下分类的函数。@Orangepill:我指的是那些函数。问题不在于它们的用途,而在于将所有内容都放入缓冲区,而不将其回显到浏览器。而ob_get_clean的作用是。。。在不发送输出的情况下从缓冲区获取!这就是phpisuber01在上述评论中建议的。我要试一试;它应该完全符合我的意图。