Запрос PUT не передает данные JSON

Svileff

Новичок
Доброе утро, Помогите разобраться с PUT запросом. Отправляю данные JSON и приходит пустой массив. Что не так сделал?
Отправляю через:
Код:
public function Json_put($array,$url){
        $array = json_encode($array, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE);
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_PUT, 1); //переключаем запрос в PUT
        curl_setopt($ch, CURLOPT_POSTFIELDS, $array);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_HEADER, false);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json; charset=utf-8"));
        return $result = curl_exec($ch);
        curl_close($ch);
    }
Принимаю у сервера:
Код:
function getFormData($method) {
        $json_str = file_get_contents('php://input');
        // GET или POST: данные возвращаем как есть
        if ($method === 'GET') return $_GET;
        if ($method === 'POST') return $json_str;
        // PUT, PATCH или DELETE
        $_DAT = array();
        $exploded = explode('&', $json_str, true);
        foreach($exploded as $pair) {
            $item = explode('=', $pair);
            if (count($item) == 2) {
                $_DAT[urldecode($item[0])] = urldecode($item[1]);
            }
        }
        return $_DAT;
    }
$method = $_SERVER['REQUEST_METHOD'];
// Получаем данные из тела запроса
$formData = $this->getFormData($method);
 

AnrDaemon

Продвинутый новичок
Надо было не
Код:
curl_setopt($ch, CURLOPT_PUT, 1);
, а
Код:
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
.
Причём надо это делать ПОСЛЕ установки CURLOPT_POST.
 
Сверху