2014-02-06 8 views
0

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

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

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

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

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'] = '[email protected]'; 

    //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, 
]); 

делает практически нет смысла to me = (

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

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

ответ

0

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

Из записки в документации filter_input:

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

source

 Смежные вопросы

  • Нет связанных вопросов^_^