我有一个$ _POST,它是数组格式的,当$ _POST超过256B时,因为它发送它有限制,它会使用gzip自动压缩。我无法阻止这种情况,但我能做的就是解压缩它(使用PHP)并将其作为一个数组。我认为。 gzuncompress仅适用于字符串。 我可以使用这个:(把它变成一个解压缩的字符串)
$post_body = file_get_contents('php://input');
$post_body = (ord(substr($post_body,0,1)) == 31 ? gzinflate(substr($post_body,10,-8)) : $post_body);
但那是一个字符串,我不能为我的生活写PHP,我帮助写了我现在得到的东西,但帮手却被困在这里。
假设$ post_body是:
userid=&name=&level=&exp=&key1=&key2=&key3=&key4=&key5=&key6=&key7=&key8=&key9=&key10=&key11=&key12=
如何将其转回数组?比如,我以前怎么做:
$userid = $_POST["userid"];
$name = $_POST["name"];
等等。我有点不知道怎么看$ _POST作为一个数组。该方法自动将其从字符串转换为数组。但后来我需要在PHP中将其作为一个数组来处理。我没有看到阵列。我可以回应它,但它显示为
Array
多数人。
非常感谢帮助,我正在用这个存储数据,我不得不拿下我的“游戏”来处理这个问题。到目前为止,$ _POST低于256B,所以我没有遇到问题。 :/
编辑:感谢@Marcin Orlowski告诉我b = bit和B = bytes
答案 0 :(得分:1)
你需要parse_str()这样:
$post_body = file_get_contents('php://input');
$post_body = (ord(substr($post_body,0,1)) == 31 ? gzinflate(substr($post_body,10,-8)) : $post_body);
parse_str($post_body);
// Now just call $userid or $name, etc...
答案 1 :(得分:-3)
您只需调用数组和所需的索引:
echo yourArray['yourIndex'];