PHP: как получить POST JSON

PHP: как получить POST JSON

От автора: когда я работал в Mozilla, мне нужно было написать транзакцию аутентификации типа OAuth между Bugzilla и Phabricator. Эта задача вынудила меня вернуться в мир PHP, к языку, который я давно не использую (с версии ~5.2). С помощью PHP я только создаю темы и плагины на WP для своего блога. Возврат к языку, который не практиковался годами, кажется чем-то совершенно новым. Начинаешь замечать шаблоны и методы, о которых и не догадывался раньше.

Где-то в транзакции аутентификации Phabricator должен был получать POST-запрос с JSON. Я думал, что данные окажутся в глобальном массиве $_POST, однако переменная была пуста. И как же мне получить POST-данные? Получить POST JSON в PHP можно с помощью следующих строк:

Раньше я думал, что функция file_get_contents умеет вытягивать контент только из локальных файлов и URL’ов. Однако с помощью специального адреса php://input с ее помощью можно получать JSON-данные в виде строки. Для перевода JSON-строки в рабочий объект/массив можно использовать json_decode.

В принципе, понятно, почему JSON не обрабатывается в $_POST, у него ведь нет ключа. Нам нужно просто получить данные, а сделать это можно с помощью php://input. Можете проверить обработку JSON+POST в cURL.

Автор: David Walsh

Источник: //davidwalsh.name/

Редакция: Команда webformyself.

Метки:

Похожие статьи:

Комментарии Вконтакте:

Комментарии (1)