【发布时间】:2012-12-22 15:23:04
【问题描述】:
我今天遇到了一个奇怪的问题。
几个月来,我在 PHP 中使用缓冲区刷新将小字符串大小发送到客户端没有问题。
今天我回到项目,结果发现我的服务器不会发送小于 512 字节的字符串。
这是我的代码:
<?php
echo "length:".$myUpcomingStringSize;
ob_flush();
flush();
sleep(1);
for($i = 0; $i < count($allLines); $++) {
echo $allLines[$i];
ob_flush();
flush();
}
?>
这个代码在去年全年都像魅力一样工作。而现在它不再。我玩了一下并添加了一些随机字符。当字符串大小等于或大于 512 时,服务器会发送缓冲区内容。
谁能想象我必须在这里解决的问题?还有其他人面临这个问题吗?或者确实 有人知道如何配置这个最小数据包大小吗?
【问题讨论】:
-
你试过不同的客户端吗?
-
那种。我一直使用同一个客户端。但实际上我是在 Objective-C 中编程,所以我在没有侧缓存或类似的东西的情况下获取原始数据
-
iOS 网络堆栈很可能有缓冲。您应该确保您的行以换行符结尾 (
\n) -
感谢换行提示。虽然没有帮助:(
-
奇怪的是服务器的行为突然改变了。到现在为止我都没有问题……
标签: php buffer flush minimum output-buffering