PHP - 无法使用PUT发布变量

时间:2014-06-30 17:07:27

标签: php put

我发出PUT请求,但我无法访问发布的数据,我总是回复string(0) ""

我用于获取PUT数据的代码是:

public function editProduct($id) {

    $put = file_get_contents('php://input',true);

    return var_dump($put);
}

PUT请求

thanasisem@debian:~$ curl -i -X PUT -d arg=123 -d arg2=345 localhost/laravelproject/public/products/5
HTTP/1.1 200 OK
Date: Mon, 30 Jun 2014 17:22:59 GMT
Server: Apache/2.2.22 (Debian)
X-Powered-By: PHP/5.4.4-14+deb7u11
Cache-Control: no-cache
X-Frame-Options: SAMEORIGIN
Set-Cookie: laravel_session=eyJpdiI6IjdcL3dYVlM1ZXZOZ0JHMVQrb1o1ME1sa3c3QTdTNnRXUnhxTWFDeHJSVDBJPSIsInZhbHVlIjoicTVPb2QwdThNRE1xUnh4VWZnWW5FT3ZTQUxKaE1RdWtycjNVUmlPWVZCZmVNcVBaVFY0Z0k1bEpSV0phVG5TckNWSkh1S2tsR1NEbmxvcFpna3lDOEE9PSIsIm1hYyI6ImI4ZmRlZTM1ODAyNDY3YjY5ZGQyZTE5NGZiMTEzZWVlOWUzZDIyZTI4MmE3MjM4MDM5NGFkZTRjOWQ4Yzk2OGQifQ%3D%3D; expires=Mon, 30-Jun-2014 19:22:59 GMT; path=/; httponly
Vary: Accept-Encoding
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8

string(0) ""
thanasisem@debian:~$ 

2 个答案:

答案 0 :(得分:0)

RTM:http://php.net/var_dump

var_dump立即输出,并且具有void返回类型。因此,您输出的是您上传的内容,然后基本上什么也没有。

你可能想要

return file_get_contents('php://input');

代替。

答案 1 :(得分:0)

解决。

我必须在-H 'Content-Type: application/json'请求中添加PUT才能使其正常工作。

我创建的成功PUT请求如下:

curl -X PUT -H 'Content-Type: application/json' -d '{"firstName":"Kris", "lastName":"Jordan"}' localhost/laravelproject/public/products/5