php://inputlocalhost で正常に動作しています。しかし、サーバーでは空を返します。私のサイトへの入力 (リクエスト) は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 入力を読み取る他の方法はありますか?