Ниже представлен HTTP-запрос. Мне нужно извлечь из него данные - массив с ключами cells и distance.
curl http://localhost:80/problem2.php -X POST -H Content-Type:application/json --data-binary "{'cells': [4,8,11,18,19], 'distance': 2}"
Но ничего не выходит, так как данные считываются не верно. Ниже - считывание данных.
$data = json_decode(file_get_contents('php://input'));
Известно, что file_get_contents('php://input')
точно получает данный массив. Почему json_decode()
может не рабоать?
JSON строго регламентирует использование двойных кавычек:
--data-binary '{"cells": [4,8,11,18,19], "distance": 2}'
var_dump(json_decode('{"cells": [4,8,11,18,19], "distance": 2}'));
Fiddle
Но ничего не выходит, так как данные считываются не верно. Ниже - считывание данных.
$data = json_decode(file_get_contents('php://input'));
При условии, что у вас есть файл problem2.php
и сервер слушает на localhost:80
, а не на 8080
или другом порте.
json_decode
возвращает объект типа stdClass, обращатся к нему надо
print_r($data->cells);
Выхлоп:
Array
(
[0] => 4
[1] => 8
[2] => 11
[3] => 18
[4] => 19
)
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Ни разу не работал с асинхронностью в PHPПо большей части оно и не надо, но у меня такая задача: юзер жмет кнопочку, делается запрос который...
Пытаюсь установить drush глобальноПосле команды: Получаю сообщение следующего содержания: После этого ничего не происходит, подскажите...
Хочу написать скрипт, который будет работать с базой данныхНо у меня возникли проблемы с реализацией функций