如何使用ob_get_contents()防止此代码回显;

时间:2012-01-04 21:14:45

标签: php session

这就是我所拥有的:

    ob_start();
    for ($i=0; $i<count($_POST['checkbox_checker']);$i++) {
    echo "<br />".$_POST['checkbox_checker'][$i];
    $selection = ob_end_flush();
    }

然后我使用$ selection存储在数据库中,因为我无法找到使用会话存储复选框的方法。问题是我使用$ SELECTION = ob_end_flush();价值观仍然回响。我怎样才能使得应该回显的值存储在$ selection中并且不显示给用户?

5 个答案:

答案 0 :(得分:3)

实际的解决方案,顺便说一句,就是不使用echo。如果只是附加到字符串变量,则不需要该解决方法:

for ($i=0; $i<count($_POST['checkbox_checker']);$i++) {
   $str .=  "<br />".$_POST['checkbox_checker'][$i];
}

(您还可以阅读foreach。在这种情况下甚至是implode()。)

答案 1 :(得分:2)

使用ob_get_clean();

ob_start();
for ($i=0; $i<count($_POST['checkbox_checker']);$i++) {
   echo "<br />".$_POST['checkbox_checker'][$i];
}
$selection = ob_get_clean();

答案 2 :(得分:1)

请改用ob_get_flush()。 ;)

答案 3 :(得分:1)

ob_end_clean() - 清除(擦除)输出缓冲区并关闭输出缓冲

其中

ob_end_flush - 刷新(发送)输出缓冲区并关闭输出缓冲

答案 4 :(得分:0)

ob_end_flush返回一个布尔值,而ob_get_flush返回一个字符串。后者是你需要的功能。