Php $\u使用PUT in cURL时POST数组为空

Php $\u使用PUT in cURL时POST数组为空,php,post,curl,put,Php,Post,Curl,Put,我有以下代码: $curl = curl_init("localhost/curlexample/index.php/users/$id"); curl_setopt($curl, CURLOPT_POST, TRUE); curl_setopt($curl, CURLOPT_POSTFIELDS, $temp); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT"); curl_setopt($curl, CURLOPT_RETURNTRANSFER

我有以下代码:

$curl = curl_init("localhost/curlexample/index.php/users/$id");
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, $temp);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($curl);
echo $result;
我试图使用$\u POST super global访问$temp中的变量,但它返回null。我想使用cURL执行一个PUT操作,我正试图使用CURLOPT_CUSTOMREQUEST实现这个操作。现在,无论何时我从代码中删除CURLOPT_CUSTOMREQUEST,它都可以正常工作。否则,$\u POST将返回null

我做错了什么?或者是否有其他方法执行PUT

我用它作为参考:

看。您需要使用
php://input
,如下所示:

parse_str(file_get_contents("php://input"), $post_vars); // $post_vars will get populated with the PUT variables.

请看:我认为您必须从PHP的stdin读取PUT数据—类似于
$data=fopen('php://input');