PHP 刷新函数导致屏幕上出现奇怪的字符

问题描述 投票:0回答:2

经过这么多麻烦,我发现当我在 PHP 邮件脚本中使用刷新函数时,我会在浏览器上收到垃圾或转储字符,如下所示。

alt text

代码如下

if ($mail->Send()) {
    echo "<br><font color=darkgreen>[$num successful send to $to]</font> ";
    // flush();
    return true;
}

如果我评论那条冲洗线,那么输出是简单的英语,但我取消评论整个页面的文本看起来像垃圾。

现在是 PHP 问题、浏览器问题还是服务器问题?

如果我在 shell 中使用相同的脚本,我的意思是在 shell 终端内执行,然后我可以看到 HTML 输出。但它在浏览器中不起作用。

php flush
2个回答
0
投票

我找到了自己问题的答案。我不得不转身

zlib_compression off

在我的

php.ini
设置文件中。

(这是什么意思,为什么它有效?我已经尝试了一年,但无法解决问题,但现在它有效了。)


0
投票

对我来说解决这个问题的方法是在我的

ob_start
语句之前使用
echo
,然后在它们之后使用
ob_end_flush
flush

for ($i = 0; $i < 6; $i++) {
    ob_start();
    echo "$i";
    ob_end_flush();
    flush();
    sleep(1);
}
© www.soinside.com 2019 - 2024. All rights reserved.