Я использую API, который отправляет обратный вызов с использованием json POST-запросов на страницу, которую я установил.
Пример обратного вызова:
{ "order": { "id": "5RTQNACF", "created_at": "2012-12-09T21:23:41-08:00", "status": "completed", "total_btc": { "cents": 100000000, "currency_iso": "BTC" }, "custom": "order1234", }
Мне нужно знать, как я могу взять каждый из этих параметров и установить их как переменные php.
Используйте json_decode
чтобы взять эту строку и получить массив:
$array = json_decode($jsonString, true);
Если вы действительно хотите, чтобы это были как отдельные переменные php, используйте extract
:
extract($array); // now you have a local $order variable echo $order['custom']; // etc... extract($order); // now you have local variables $id, $status, etc echo $id;
Пример: http://3v4l.org/dqBjT
Имейте в виду, что extract
может потенциально перезаписать другие локальные переменные, обычно это не считается хорошей практикой. Я бы рекомендовал получить доступ к данным, которые вам нужны в $array
.
Обновление: похоже, вы пытаетесь получить доступ к строке JSON для публикации. Есть две возможности:
Если данные отправляются как обычная пара ключей / значений POST, вы можете сделать print_r($_POST)
на своей странице, и вы должны увидеть, где находится строка json.
Возможно, что он отправляется как необработанные данные POST, а не пары ключ / значение. В этом случае вам нужно посмотреть на file_get_contents("php://input");
, Попробуйте повторить это. Если вы найдете строку JSON, просто установите $jsonString = file_get_contents("php://input");
и переходите к следующему json_decode
.