PHP回声仅在数据达到一定大小时执行

时间:2019-03-13 02:07:12

标签: php

我有一个PHP端点,该端点在被调用时将返回一个json对象。但是,我遇到一种奇怪的情况,即仅在发送的数据大于或等于特定大小时才执行echo行。

要返回的对象类似于{"ProjectsList": [...]}。数组如下所示:

$outputArray = [
    {...},
    {...},
    ...
]}

它存储在标题中的部分(重要的是稍后进行解释)

header('ProjectsList: '.json_encode($outputArray));

从服务器返回它的部分:

echo '{"ProjectsList": '.json_encode($outputArray).'}'
http_response_code(204)

现在,当ProjectsList对象的大小为3.72kb(我不是100%确定这是确切的最大值,但是我能够测试的大小)以下时,将不执行回显,并发送204响应:

enter image description here

检查网络显示标头已设置了正确的对象,因此我们知道$outputArray不为空:

enter image description here

但是,如果对象为4.25kb(这是我能够测试的对象-我不能100%确定确切的最小值)或更大,则将其正确发送,并发送200 响应被发送,因为未执行回显下面的行(按预期方式)。

enter image description here

enter image description here

注意:我只是在标题中设置数据,以确保数据确实存在,并且不是导致数据不被发送的原因。 -从标题中删除它会产生相同的结果。

为什么echo行没有100%地执行?以及为什么它取决于数据大小?

0 个答案:

没有答案