GET

2014-02-06 2 views
0

에 CLI 매개 변수를 등록 할 때 전역 등록 문제가 여기 이상한 곳으로 흘러갔습니다. 더 엄격한 기준에 따라 일부 엄격한 문제가 발생할 수 있습니다. (이미 해결되었지만GET

그래서 CLI 문자열 (유형 [0]을 기반으로 함)을 감지하고 CLI 매개 변수를 GET으로 변환하고로드하는 코드 라인이 있습니다. params.

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

, 당신은 파일을 생성하고 위의 라인 단지 print_r($_GET);

음을 사용하여 파일의 내용

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

처럼 뭔가를 issueing 그것을 테스트 할 수 있습니다 필터 입력으로 사용하려고하면 이상해진다. 알아 차렸지만 이유를 알 수 없다.

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

print_r($filter); //empty 
또한 일반적으로 filter_input_array에 의해 사라지는하는 GET 요청에 아무것도 압정을 시도처럼 보인다 16,

, 예를 알 수없는 원인으로

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

이 더 의미에 조금 만듭니다 비록 일을 무엇

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, 
])): 

나에게 = (

나는 우리의 GET이 어떻게 든 글로벌 범위에 등록되어 있지 않다고 믿고 싶다. 그러나 나는 이유를 알아 내는데 부족하다.

나는 Saucy를 위해 5.5.5를 실행 중이다. 입력 환영

답변

0

filter_input_array() 및 filter_input() 함수는 해당 전역 변수가 아니라 실제 입력에서 작동한다. filter_input에 대한 문서에 메모에서

:이 기능은 실제로 대신 $ _GET 등의 현재 값을 기준으로 필터링 (또는 적어도하지 않는 것)하지 않는

주, 원래 값을 기반으로 필터링하는 것으로 보입니다.

source