$_GET と $_POST の簡単なフィルター関数を作成します。これが私のコードです。
array_map('clean', $_GET);
function clean($el)
{
$_GET[] = strip_tags($el);
}
var_dump($_GET);
// result
1 => 'One',
2 => 'Two'
// expected
'first' = 'One'
'second' = 'Two'
キーと値の構造を同じにする方法は?
へのコールバックは値を返すarray_map
必要があります。配列内のすべての値に対してコールバックを呼び出し、返された値に置き換えます。コールバック内で配列自体を変更することはありません。array_map
$_GET = array_map('clean', $_GET);
function clean($el) {
return strip_tags($el);
}
var_dump($_GET);
しかし、実際には、strip_tags
すでに 1 つの引数を取り、1 つの値を返すため、これは同じことを行います。
$_GET = array_map('strip_tags', $_GET);
しかし実際には、strip_tags
入ってくるすべての値をひとまとめにするのは悪い考えであり、ほとんどの問題は解決しません。値の内容と用途に応じて、各値を個別にエスケープ/サニタイズする必要があります。The Great Escapism (または、テキスト内のテキストを操作するために知っておくべきこと)を参照してください。
を誤用しarray_map
ます。ここで上書きする必要があります$_GET
。コールバックが新しい配列の要素を返すことをarray_map
期待しています(このキー用)。
$_GET = array_map('clean', $_GET);
function clean($el)
{
return strip_tags($el);
}