PHPのプログラミングメモ第6回です。
【関連記事】
>> 【PHP第1回】プログラミングメモ/プログラミングメモのコツ/環境構築
>> 【PHP第2回】変数・定数・データ型
>> 【PHP第3回】条件分岐・ループ処理
>> 【PHP第4回】関数
>> 【PHP第5回】配列
>> 【PHP第6回】バリデーション
PHPでは、フォームの入力値を検証するためのバリデーション関数やライブラリがいくつか用意されています。いくつか調べたので備忘録です。
filter_var関数 filter_var関数
- 様々な種類のデータに対してバリデーションを行うことができる
- 例えば、メールアドレスやURLの形式が正しいかどうかを検証することが可能
// sample code
$email = 'example@example.com';
if ( filter_var($email, FILTER_VALIDATE_EMAIL) ) {
echo "valid mail address";
} else {
echo "invalid mail address";
}
preg_match関数
- 正規表現を使用して文字列がパターンに一致するかどうかをチェックすることができる
- 正規表現を使うことで、様々な形式の入力値に対して柔軟なバリデーションを行うことができる
// sample code
$password = 'Abc12345';
if (preg_match('/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$/', $password)) {
echo "valid password";
} else {
echo "invalid password";
}
PHP標準のバリデーション関数
- PHPでは、数値や日付、文字列などのデータ型ごとにバリデーション関数が用意されている
- 例えば、is_numeric関数は、引数が数値かどうかをチェックする
- 他にも、is_string関数やis_date関数などがある
$age = '20';
if (is_numeric($age)) {
echo "valid age";
} else {
echo "invalid age";
}
ハンズオン
// 郵便番号を正規表現でバリデーションする場合の例
// $zip_code_pattern = "/^\d{3}-\d{4}$/";
// この正規表現パターンは、以下のように解釈される
// ^: 文字列の先頭を表す
// \d{3}: 3桁の数字
// -: ハイフン
// \d{4}: 4桁の数字
// $: 文字列の末尾を表す
// 上記の正規表現パターンは、以下のような文字列にマッチします。
// 123-4567
// 987-6543
// 以下は、PHPで郵便番号のバリデーションを行う例
// preg_match関数を使用
$zip_code = '123-4567';
$zip_code_pattern = "/^\d{3}-\d{4}$/";
if (preg_match($zip_code_pattern, $zip_code)) {
echo "valid zip code";
} else {
echo "invalid zip code";
}