nmeri17 Ответов: 0

Как разместить многомерный массив в другом скрипте


У меня есть несколько массивов, которые мне нужно отправить обратно на сервер, но данные большие, поэтому я закодировал их в 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, но эта функция работает только с плоскими массивами. Я даже не могу представить, как преобразовать такой массив в запрос. Я также пробовал бесчисленные фрагменты кода в Интернете, которые обещают плавную доставку массивов, но ни один из них не работает.

0 Ответов