PHP获取PUT请求正文 - php

我目前正在用PHP开发Restful Json-API。我想向items/:id发送一个PUT请求以更新一条记录。数据将作为application/json传输。

我想用

curl -H "Content-Type: application/json" -X PUT -d '{"example" : "data"}' "http://localhost/items/someid"

在服务器端,我无法检索请求正文。我试过了

file_get_contents("php://input");

但这会返回一个空字符串。同样,fopen() / fread()组合也不起作用。

通过POST调用时,一切正常,我可以在服务器端完美地读取json。但是API不再是Restful。有人对此有解决方案吗?还有其他发送和接收Json的方法吗?

顺便说一句,我正在用Slim Framework开发API。

参考方案

php://input对于PUT请求仅可读一次:

注意:用php:// input打开的流只能读取一次;该流不支持搜索操作。但是,根据SAPI的实现,有可能打开另一个php:// input流并重新开始读取。仅在请求正文已保存的情况下才有可能。通常,POST请求就是这种情况,而其他请求方法(例如PUT或PROPFIND)则不是这种情况。
http://php.net/manual/en/wrappers.php.php

Slim框架已根据请求读取数据。从已被读取的Request对象中获取数据。

PHP-MySQL结果转换为JSON - php

我试图了解如何将MySQL结果转换为JSON格式,以便以后可以在Javascript中使用此JSON来构建HTML表。但是我的代码只是产生大量的空值,我还不明白为什么。$result = mysqli_query($con, "SELECT * FROM Customers"); $test = json_encode($result);…

json_encode网址失败 - php

有人在this bug附近吗?echo json_encode(array('url'=>'/foo/bar')); {"url":"\/foo\/bar"} 我使用Zend_Json and Zend_Json_Expr以便我甚至可以在js对象中获取回调函数-但我无法获得…

json_encode的特定方式 - php

所以这是我的PHP<?php include 'connect.php'; $sql = "SELECT name from startup_schema"; $result = mysqli_query($mysqli, $sql) or die("Error in Selecting " …

PHP-将日期插入日期时间字段 - php

我已在数据库中使用datetime字段存储日期,使用PHP将“今天的日期”插入该字段的正确方法是什么?干杯, 参考方案 我认为您可以使用php date()函数

PHP-如何获取类的成员函数列表? - php

如果我知道班级的名字。有没有办法知道类的成员函数列表? 参考方案 get_class_methods()是你的朋友