Проблемы с глобальной регистрацией при регистрации параметров CLI в GET

Столкнулся со странным здесь, может быть, некоторые из более старших парней могут помочь мне прийти к выводу о том, что именно происходит (уже есть обходной путь, но хотел бы знать, как это исправить, поскольку, кажется, это может повлиять на других вещи)

Итак, у меня есть строка кода, которая обнаружит строку CLI (на основе типа [0]), а затем приступит к преобразованию и загрузке параметров CLI в параметры GET.

parse_str(implode("&", array_slice($payload['args'], 1)), $_GET);

Это прекрасно работает, вы можете проверить это с созданием файла и выпуском что-то вроде

php - f test.php -- foo=bar bar=baz

С содержимым файла, используя вышеуказанную строку и просто print_r($_GET);

Ну, это странно, когда вы пытаетесь использовать это как filter_input, я заметил, но не могу понять, почему

$filter = filter_input_array(INPUT_GET, [
   'email'     => FILTER_VALIDATE_EMAIL,
]);

print_r($filter); //empty

Это также выглядит как попытка привязать что-либо к GET-запросу. filter_input_array в общем, экземпляр

http://localhost?request=foo

$_GET['email'] = 'Someguy@somplace.com';

    //print_r($_GET); // check

print_r(filter_input_array(INPUT_GET, [
   'email'     => FILTER_VALIDATE_EMAIL,
   'request'   => FILTER_SANITIZE_ENCODED,
])):

Что работает, хотя по неизвестным причинам

$filter = filter_var_array($_GET, [
   'email'     => FILTER_VALIDATE_EMAIL,
]);

Не имеет для меня никакого смысла =(

Мне хотелось бы верить, что наш GET так или иначе не вошел в глобальную сферу, но мне не хватает, чтобы выяснить, почему...

Я использую PHP 5.5.8 для Saucy, ввод приветствуется

1 ответ

Решение

Функции filter_input_array() и filter_input() работают с фактическим вводом, а не с соответствующими глобальными переменными.

Из примечания в документации для filter_input:

Обратите внимание, что эта функция не (или, по крайней мере, не кажется) на самом деле фильтрует на основе текущих значений $_GET и т. Д. Вместо этого она, кажется, фильтрует на основе исходных значений.

источник

Другие вопросы по тегам