php://input
работает правильно в локальном хосте. Но на сервере он возвращается пустым. Вход (запрос) на мой сайт json
(REST - application/json type), поэтому $_POST
не работает (пожалуйста, прочтите This question).Чтение ввода json в php
$ _POST работает с входами типа пары ключ-значение, как форм-данных или х-WWW-urlencoded
key1 = value1 & key2 = значение2 & ключ3 = value3
я используя application/json
в качестве входных данных (в ОТДЫХ).
Как { 'key1': 'значение1', 'key2': 'значение2', 'ключ3': '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
Есть ли какие-либо другие методы для чтения JSON ввода в PHP
первых вещей, чтобы проверить , то есть версии php одинаковы, и если установлен 'allow_fopen_url' – DevZer0
Попробуйте' var_dump ($ this-> json_input_data) 'in' __construct() ' –
@RohanKumar -> он выводит« NULL »на сервере, где я размещен. Prints "(2) { [" id "] => строка (2)" 79 " [" t "] => строка (5)" 22_00 " }" в локальном хосте. –