Reading json input in php Reading json input in php codeigniter codeigniter

Reading json input in php


php://input is a read-only stream that allows you to read raw data from the request body. In the case of POST requests, it is preferable to use php://input instead of $HTTP_RAW_POST_DATA as it does not depend on special php.ini directives. Moreover, for those cases where $HTTP_RAW_POST_DATA is not populated by default, it is a potentially less memory intensive alternative to activating always_populate_raw_post_data. php://input is not available with enctype="multipart/form-data".

See wrappers

Try this too,

....  public function __construct(){    parent::__construct();    if(isset($_POST))    {       var_dump(file_get_contents('php://input'));       $this->json_input_data=json_decode(file_get_contents('php://input'),TRUE);    }    else echo 'Not Post';  }....

Also check for allow_url_fopen.


I know this is old, but it might help others:

Careful with single quotes inside your json

From the PHP documentation about json_decode:

the name and value must be enclosed in double quotessingle quotes are not valid $bad_json = "{ 'bar': 'baz' }";json_decode($bad_json); // null