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.

Бесплатный курс по PHP программированию

Освойте курс и создайте динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

Получить курс сейчас!

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

Автор: David Walsh

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

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

Разработка веб-приложения на PHP

Создайте веб-приложение на PHP на примере приема платежей на сайте

Получить

Метки:

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

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

Комментарии Facebook:

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

  1. r0ma

    На днях получал/отправлял PUT подобным образом.
    В комментариях к официальной документации нашел аналогичный прием.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Я не робот.

Spam Protection by WP-SpamFree