我试图熟悉PHP的flush()函数,我正在做一个项目,我自己写了几个脚本,并将它们上传到我自己的一些webspace;但似乎没有一个人工作。我从PHP.net评论拿起一个下方,试了一下:PHP flush()显然适用于我的Linux机器,但不适用于我的Windows机器?
<?php
header('Content-type: text/html; charset=utf-8');
echo 'Begin ...<br />';
for($i = 0 ; $i < 10 ; $i++)
{
echo $i . '<br />';
flush();
sleep(1);
}
echo 'End ...<br />';
显然,脚本仍然不能正常工作。
然后我读的评价是说:
如果你调用使用ob_flush()和flush()和仍然没有得到缓冲液冲洗这可能是因为一些杀毒软件(Panda在这种情况下)持有直到页面完成加载,然后将其发送到浏览器。
因此,我决定请求在我使用Linux(Ubuntu 12.04)的计算机上的网页,因为它没有安装任何防病毒软件;它完美的工作!
我不知道这是否与防病毒软件有关?或者在Windows中阻止flush()达到预期目的的其他一些奇怪机制,我在两台机器上都使用相同的浏览器(Firefox 14.0.1),所以我怀疑它可能是这样。所以我想我真正的问题是:有没有人知道反病毒软件防止flush()实现其预期目的(因为我似乎无法找到任何关于它的在线)?如果是这样,有什么方法可以解决它吗?
编辑:只是为了清理,我肯定这不是服务器端,我有一个运行Linux的外部Web服务器,我不是在Linux或Windows机器上本地托管这些脚本。编辑2:我在Linux笔记本电脑上的一个朋友家中尝试过这种方法,我设法让它在我的房子里工作,奇怪的是,同花顺的代码也没有在他们家工作(相反,它只花了很长时间来加载和所有这一切都出来了)这是奇怪的,因为它在我家里的这台笔记本电脑上工作,我不确定路由器是否与flush()函数有关(我真的无法在网络上找到任何有关),因为那是我能想到的唯一可能会干扰它的事情。
否则我没有取得任何进展,试图独自解决这个问题,这绝对与服务器端无关,这很奇怪,因为我似乎发现大多数信息都是关于服务器是问题的时候flush()函数不起作用:/
巧合的是,我也试过在运行诺顿(而不是AVG)的PC上运行它,但它的工作原理并不完全是100%。
我知道这绝对是客户端,而不是服务器端,虽然在Linux中的Firefox中呈现相同的页面,但在Windows下不好。这导致我认为这也不是浏览器相关的问题。 。 。这似乎消除了该报价中的所有解释:/ – Sean 2012-08-05 13:41:39
@SeanDunwoody:你怎么知道它不是服务器端?服务器是每个操作系统下的不同程序。浏览器也一样。 – Jon 2012-08-05 13:45:04
不,对不起,我认为你误解了,我有一台服务器托管这个正在运行的Linux,我不在任何一台机器上本地托管这个 – Sean 2012-08-05 13:46:00