0

ここで奇妙なことに遭遇しました。おそらく、より年配の人の何人かが、正確に何が起こっているのかについて結論を出すのを助けることができます(すでに回避策がありますが、他の人に影響を与える可能性があるため、これを修正する方法を知りたいです)もの)

そのため、(type[0] に基づいて) CLI 文字列を検出し、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 がどういうわけかグローバルスコープに登録されていないと信じたいのですが、その理由を理解することができません...

Saucy用にPHP 5.5.8を実行しています。入力歓迎

4

1 に答える 1