php://input
localhost で正常に動作しています。しかし、サーバーでは空を返します。私のサイトへの入力 (リクエスト) はjson
( REST - アプリケーション/json タイプ) であるため、$_POST
機能しませんでした (この質問を読んでください)。
$_POST は、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;
}
}
上記のコードは別の Web サーバーでも正常に動作しますが、現在の Web サーバーでは動作しません。:(
Web サーバーが へのアクセスを拒否しているようphp://input
です。
php で json 入力を読み取る他の方法はありますか?