Как разместить многомерный массив в другом скрипте
У меня есть несколько массивов, которые мне нужно отправить обратно на сервер, но данные большие, поэтому я закодировал их в JSON, в результате чего получилось что-то вроде этого
{"help me":[{"href":"http:\/\/codeproject.com","key1":"20%","key2":"20%","key3":"65%}]}
Где есть около 40 массивов со своими собственными hrefs, и каждый из этих массивов имеет более ста ключей. Я намерен идентифицировать эту полезную нагрузку на другом скрипте, используя что-то вроде
$_POST['help me']
(шлюз к десяткам массивов).Что я уже пробовал:
Я пробовал использовать guzzle (который внутренне использует curl) и file get contents, но ни один из них не может транспортировать данные обратно.
$postClient = new GuzzleClient(); $response = $postClient->request('POST', 'http://localhost/c.php', [ 'json' => json_decode($data, true) ]);
и
$postClient = new GuzzleClient(); $response = $postClient->request('POST', 'http://localhost/c.php', [ 'body' => $data, 'Content-Type' => 'application/json' ]);
а также
$opts = array('http' => array('method' => 'POST', 'header' => 'Content-Type: application/json', 'content' => json_decode($data, true)['fixtures'])); $context = stream_context_create($opts); $result = file_get_contents('http://localhost/c.php', false, $context);
Но когда я проверяю заголовок ответа с помощью $http_response_header, Я нахожу, что он был отправлен с использованием типа контента text/html и c.php который содержит
var_dump($_POST);
Говорит, что массив пуст, тогда как там должен быть массив с именем «помогите мне». Таким образом, похоже, что до этого скрипта нет, но без транспортных параметров. Но на самом деле он видит эти параметры, потому что когда я var_dump суперглобальный $ _SERVER вместо $ _POST, он показывает мне все параметры, переданные в опциях. Все, кроме тела запроса или полезной нагрузки. Ключ QUERY_STRING пуст, поэтому я попытался отправить строку в кодировке URL вместо использования http_build_query, но эта функция работает только с плоскими массивами. Я даже не могу представить, как преобразовать такой массив в запрос. Я также пробовал бесчисленные фрагменты кода в Интернете, которые обещают плавную доставку массивов, но ни один из них не работает.