日別アーカイブ: 2020年8月5日

【php】filter_inputを使ってみる

こんにちは〜

今日はphpのfilter_inputを使ってみたというお話です。

phpのサイトはこちら

つまり、getとかpostで受け取った値をフィルターにかけてinputする、という関数ですね(そのまま)

具体的にどういう感じなのか説明見ただけでは分からなかったので、実行してみました。

(環境はphp7.4.7です)

$a = filter_input(INPUT_GET, 'name');
if($a === null){
	echo "null";
}else if($a === false){
	echo "false";
}else if($a === ""){
	echo "空白";
}else{
	echo $a;
}

これでどうなるのか。見てみます。

URL 出力
index.php 空白
index.php?name=a a
index.php?name2=a null
index.php?name[0]=a false

表の使い方がよく分からない。。

とりあえず、入力方法として思いついたものを並べてみましたが、意外にも結果は全てバラバラに。

get値がそもそもない場合は空白(””)が、

値があれば値が、

get値はあるもののそのパラメータが存在しない場合はnullが、

パラメータが存在するが配列が返された場合はfalseが

戻ってくるようです。

ちなみに、数値もstring型になります。

いろいろ返ってきて処理がめんどくさい。。という場合は

$a = (string)filter_input(INPUT_GET, 'name');

という形で、string型に変換すると、null,falseが全て空白になります!

特に分ける必要がない場合は便利ですね。

こちらのサイトを見て、filter_inputの存在を知ったのですが、普通にissetだけで確認してると悪意のある人が配列を投げてきたらエラーを吐くとかいう可能性があるので、慎重になる必要があるみたいですね。。

それでは、また〜