栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

PHP错误:ob_flush()[ref.outcontrol]:无法刷新缓冲区。没有要刷新的缓冲区

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PHP错误:ob_flush()[ref.outcontrol]:无法刷新缓冲区。没有要刷新的缓冲区

我想你混淆了

ob_flush()
flush()
。虽然
ob_start()
ob_flush()
处理捕获所有输出的PHP内部输出缓冲区,但它
flush()
是正常的函数,
STDOUT
像其他编程语言一样进行刷新。

例:

<?phpob_start();echo "FoobarnFoobarnFoobarn";// Nothing printed yetob_flush(); // Now it is printed.echo "Foobarn"; // Printed directly, because contains a line ending.echo "Foobar"; // Not printed, because normally buffers are flushed on line endingsflush();  // Printed.

编辑:

您的输出未打印,因为您的Web服务器可能会缓冲内容。尝试关闭压缩和输出缓冲:

@apache_setenv('no-gzip', 1);@ini_set('zlib.output_compression', 0);@ini_set('implicit_flush', 1);

还请记住,Safari和Internet Explorer具有内部1K缓冲区。因此,您需要添加1 KB的填充数据(如空格)以使其呈现。

编辑2: 您的实现已损坏。您想使用ajax轮询数据。在客户端使用jQuery:

<div id="counter">0%</div><script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"><script type="text/javascript">function doPoll(){    $.post('script-that-returns-stuff.php', function(data) {        $("#counter").html(data);        setTimeout(doPoll,5000);    });}doPoll();</script>

然后在

script-that-returns-stuff.php

<?php$file = explode("n", file_get_contents("/tmp/output.txt"));$last_line = $file[count($file)-1];echo $last_line."%";


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/413628.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号