这是我$Data =
[
"Something" => "1",
"SomethingElse" => "2",
"More" => "3",
"Exactly1000000" => substr(file_get_contents("Data2MB.txt"), 0, 1000000),
"Exactly1000001" => substr(file_get_contents("Data2MB.txt"), 0, 1000001),
"About2MB" => file_get_contents("Data2MB.txt"),
];
正在PHP脚本中的一些数据。
cURL
已使用Guzzle
,XMLHttpRequest
(不使用cURL)并通过<?php
print_r($_POST);
?>
完成了此操作。两者产生相同的结果。
发布到:
Array
(
[Something] => 1
[SomethingElse] => 2
[More] => 3
[Exactly1000000] => Z0vp2++85+y9wjFL... (very long random base64)
)
输出:
file_get_contents("php://input")
任何字符串值> 1000000个字符实际上都会消失,但是如果目标脚本显示max_execution_time 500
max_file_uploads 20
max_input_nesting_level 64
max_input_time 500
max_input_vars 10000
memory_limit 512M
post_max_size 240M
我设置了以下PHP参数:
{{1}}
有人可以告诉我发生了什么事吗?
编辑:不,这不是重复的问题。我知道上限可能很大。我的示例仅发送兆字节,并且更改了PHP设置(以上)以创建足够的余量。由于某些原因,键/值根本无法在我的服务器上看到。
答案 0 :(得分:3)
我的猜测是,您很可能已在服务器上安装了Suhosin-它具有限制POST参数值长度的设置,并且该值与默认值完全相同:
https://suhosin.org/stories/configuration.html#suhosin-post-max-value-length:
suhosin.post.max_value_length
类型:整数
默认值:1000000
定义通过POST请求注册的变量的最大长度。