php://input
在本地主机中正常工作。但在服务器中它返回空。我网站的输入(请求)是json
(REST-应用程序/json 类型),所以$_POST
没有用(请阅读这个问题)。
$_POST 适用于 key-value 对类型的输入,如 form-data 或 x-www-urlencoded
键1=值1&键2=值2&键3=值3
我application/json
用作输入(在REST中)。
比如 {'key1':'value1','key2':'value2','key3':'value3'}
这无法使用$_POST
. 但是使用php://input
可以帮助读取该数据。
我的代码
class Webservice_Controller extends CI_Controller {
public $json_input_data;
public function __construct(){
parent::__construct();
$this->json_input_data = json_decode(file_get_contents('php://input'),TRUE);
}
public function json_input($label){
if(isset($this->json_input_data[$label])) return $this->json_input_data[$label];
else return NULL;
}
}
上面的代码在另一个网络服务器中也可以正常工作,但在当前的网络服务器中不行。:(
我认为我的网络服务器拒绝访问php://input
.
还有其他方法可以在 php 中读取 json 输入吗?