2015-11-06 2 views
0

Я пытаюсь исправить callbackurl, и в старой системе я мог бы просто использовать $_POST['order_id'] при попытке получить данные. К сожалению, это уже не представляется возможным.Как получить информацию из file_get_contents (php: // input)?

Новая система использует эту строку кода:

$request_body = file_get_contents("php://input"); 

Согласно технической спецификации order_id теперь называется просто id, но как я могу использовать $request_body, чтобы получить его? Что-то вроде $request_body['id']?

+0

Почему вы не 'var_dump'' $ request_body', чтобы увидеть, что содержит? –

ответ

1

Какие данные вы отправляете на сервер? Вероятно, форма кодируется application/x-www-form-urlencoded, поэтому вы можете использовать функцию parse_str для синтаксического анализа строки запроса.

php://input содержит исходные данные после запроса HTTP-заголовков.

$request_body = file_get_contents("php://input"); 

$data = array(); 

parse_str($request_body, $data); 

var_dump($data); 

Если вы отправляете JSON, например, вы можете использовать json_decode.

+0

Id попытался сделать это: $ request_body = file_get_contents ("php: // input"); $ data = array(); parse_str ($ request_body, $ data); $ getmyid = $ data ['id']; Но, к сожалению, ничего не было найдено. Не могли бы вы показать мне, что вы подразумеваете под json_decode? –

+0

Я попытался сэкономить $ request_body непосредственно в моей базе данных, и, наконец, что-то случилось. Это богатство данных в формате {«id»: 8683104, «order_id»: «1853926», «и т. Д. И т. Д.». Это я могу работать, думаю. –

+1

Кажется, что ваши данные хранятся в JSON. Вы можете использовать '$ data = json_decode ($ request_body, true);' для получения ассоциативного массива на основе вашего JSON. – vitozev

Смежные вопросы