Как мне распаковать массив $ _POST?

У меня есть $ _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 = бит, а B = байт

0

Решение

Тебе нужно 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

Другие решения

Вы просто вызываете массив и нужный индекс:

echo yourArray['yourIndex'];
-3

По вопросам рекламы [email protected]