经过这么多麻烦,我发现当我在 PHP 邮件脚本中使用刷新函数时,我会在浏览器上收到垃圾或转储字符,如下所示。
代码如下
if ($mail->Send()) {
echo "<br><font color=darkgreen>[$num successful send to $to]</font> ";
// flush();
return true;
}
如果我评论那条冲洗线,那么输出是简单的英语,但我取消评论整个页面的文本看起来像垃圾。
现在是 PHP 问题、浏览器问题还是服务器问题?
如果我在 shell 中使用相同的脚本,我的意思是在 shell 终端内执行,然后我可以看到 HTML 输出。但它在浏览器中不起作用。
我找到了自己问题的答案。我不得不转身
zlib_compression off
在我的
php.ini
设置文件中。
(这是什么意思,为什么它有效?我已经尝试了一年,但无法解决问题,但现在它有效了。)
对我来说解决这个问题的方法是在我的
ob_start
语句之前使用 echo
,然后在它们之后使用 ob_end_flush
和 flush
:
for ($i = 0; $i < 6; $i++) {
ob_start();
echo "$i";
ob_end_flush();
flush();
sleep(1);
}