这是我正在POST处理 PHP 脚本的一些数据。
$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"),
];
这是使用cURL, Guzzle(不使用 cURL)和通过 完成的XMLHttpRequest。两者都产生相同的结果。
发布到:
<?php
print_r($_POST);
?>
输出:
Array
(
[Something] => 1
[SomethingElse] => 2
[More] => 3
[Exactly1000000] => Z0vp2++85+y9wjFL... (very long random base64)
)
任何大于 1000000 个字符的字符串值都会消失,但如果目标脚本显示 file_get_contents("php://input")
我设置了以下 PHP 参数:
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 设置已更改(以上)以创建足够多的空间。出于某种原因,我的服务器上根本看不到键/值。