Мне нужно проверить, существует ли php://input/isset. Работает ли он с php isset()? Каков правильный способ проверить это?
Как проверить, установлен ли вход php://?
Ответ 1
Попробуйте протестировать его с помощью file_get_contents() (для чтения) + empty() или boolean conversion (для тестирования):
<?php
$input = file_get_contents('php://input');
if ($input) {
   // exists
} else {
   // not exists
}
Из php.net:
Поток, открытый с помощью php://, вводится только один раз; поток не поддерживает операции поиска. Однако, в зависимости от SAPI реализации, может быть возможно открыть другой поток ввода php:// и перезапустить чтение. Это возможно только в том случае, если данные тела запроса был сохранен. Как правило, это относится к запросам POST, но не другие методы запроса, такие как PUT или PROPFIND.
Ответ 2
Вы можете получить содержимое php://input с помощью file_get_contents и проверить возвращаемое значение, чтобы увидеть, действительно ли оно установлено:
$input = file_get_contents("php://input");
if ($input) {    
    // set     
}
else {
   // not set
}
		Ответ 3
он возвращает true, если существует переменная, а ее значение не равно null
$foo = 'bar';
var_dump(isset($foo));        -> true
$baz = null;
var_dump(isset($baz));        -> false
var_dump(isset($undefined));  -> false
		Ответ 4
Предположим, что вы получаете пользовательский ввод от запроса POST, вы можете проверить, установлен ли он как этот
 if(isset($_POST['var_name']))
 {
      //for additional checking  like if  it not  empty do this
      if(!empty($_POST['var_name']))
      {
           //Do whatever you want here
      }
 }