半角チェック
strlen()とmb_strlen()の結果が等しければ半角。
function hanCheck($data) {
if (strlen($data) == mb_strlen($data)) {
return true;
} else {
return false;
}
}
全角チェック
strlen()とmb_strlen()*2の結果が等しければ全角。
function zenCeck($data) {
if (strlen($data) == mb_strlen($data) * 2) {
return true;
} else {
return false;
}
}
全角カタカナチェック
function isZenKkana($data) {
$data= mb_trim(trim($data));
$pat = "^[ァ-ヶ?゛゜ゝゞー・]+$";
if (mb_ereg_match($pat, $data)) {
return true;
} else {
return false;
}
}
全角ひらがなチェック
function isZenHkana($data) {
$data= mb_trim(trim($data));
$pat = "^[ぁ-ん?゛゜ゝゞー・]+$";
if (mb_ereg_match($pat, $data)) {
return true;
} else {
return false;
}
}
メーアドレスチェック
function mailCheck($value) {
//スペースの場合はそのままリターン
if (!strlen($value)) {
return true;
}
//全角文字→半角文字
$value = mb_convert_kana($value, "askh");
if (!preg_match("/^[\w\-\.]+@[a-zA-Z0-9\-]+(\.[a-zA-Z0-9\-]+)*\.[a-zA-Z]{2,4}$/", $value)) {
return false;
} else {
return true;
}
}
ドメインチェック
より正確を期す場合はドメインチェックも併せて行います。
function domainCheck($value) {
//スペースの場合はそのままリターン
if (!strlen($value)) {
return "";
}
//全角文字→半角文字
$value = mb_convert_kana($value, "askh");
//ドメイン名の取得
$pos = strpos($value, "@");
$domain = substr($value, $pos+1);
//MXレコードチェック
if (checkdnsrr($domain, "MX")) {
return true;
}
//Aレコードチェック
if (checkdnsrr($domain, "A")) {
return true;
}
//ホストの別名チェック
if (checkdnsrr($domain, "CNAME")) {
return true;
}
return false;
}
URLチェック
function urlCheck($value) {
//スペースの場合はそのままリターン
if (!strlen($value)) {
return true;
}
//全角文字→半角文字
$value = mb_convert_kana($value, "askh");
if (preg_match("/^https?:\/\/[\-_\.\/~,$!*'();:@=&\+%A-Za-z0-9]+$/", $value)) {
return true;
} else {
return false;
}
}