如果长度 > 1000000 个字符,则未设置 $_POST 键/值

这是我正在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 设置已更改(以上)以创建足够多的空间。出于某种原因,我的服务器上根本看不到键/值。


一只甜甜圈
浏览 115回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP