Отправляю с одной сайта данные:
// Содержимое запроса
$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() не могу.