Мне нужно проверить, существует ли php://input
/ isset. Работает ли он с php isset()
? Каков правильный способ проверить это?
Попробуйте протестировать его с помощью 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.
Вы можете получить содержимое php://input
с помощью file_get_contents
и проверить возвращаемое значение, чтобы увидеть, действительно ли оно установлено:
$input = file_get_contents("php://input"); if ($input) { // set } else { // not set }
он возвращает true, если существует переменная, и ее значение не равно нулю
$foo = 'bar'; var_dump(isset($foo)); -> true $baz = null; var_dump(isset($baz)); -> false var_dump(isset($undefined)); -> false
Предположим, вы получаете пользовательский ввод из запроса POST, который вы можете проверить, установлен ли этот набор таким образом
if(isset($_POST['var_name'])) { //for additional checking like if it's not empty do this if(!empty($_POST['var_name'])) { //Do whatever you want here } }