Как прочитать JSON который отправил через curl в php://input?

Отправляю с одной сайта данные:
// Содержимое запроса
	$body = json_encode(array ( 'data' => 'lorem', 'count' => 'infinity');

	// Создание временного файла, содержимое которого будет передано методом PUT
	$fp = fopen('php://temp/maxmemory:256000', 'w');
	fwrite($fp, $body);
	fseek($fp, 0);

	// Выполнение PUT-запроса и вывод результата
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
	curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json', 'Accept: application/json', 'Expect:'));
	curl_setopt($ch, CURLOPT_PUT, true);
	curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
	curl_setopt($ch, CURLOPT_INFILE, $fp);
	curl_setopt($ch, CURLOPT_INFILESIZE, strlen($body));  

	$output = curl_exec($ch);		

	echo $output;

На другом принимаю:
$str  = file_get_contents("php://input");
echo $str; // {"data" : "lorem", "count" : "infinity"}
$json = json_decode($str);
var_dump($json); // ничего не выводит

Могу только вывести file_get_contents("php://input"), но отправить данные в письме или json_decode() не могу.
  • Вопрос задан
  • 6067 просмотров
Пригласить эксперта
Ответы на вопрос 1
WebSpider
@WebSpider
echo $str; // ['data' : 'lorem', 'count' : 'infinity']

Это не валидный JSON, точнее, вообще не JSON. JSON должен выглядеть так:

echo $str; // {'data' : 'lorem', 'count' : 'infinity'}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы