PHP 携帯電話番号認証方法
携帯電話番号は人々の日常生活に欠かせない連絡手段となっており、携帯電話番号の認証も非常に重要な部分です。 Web サイトの登録や SMS の受信などのシナリオでは、携帯電話番号の合法性と正確性を確保するために、PHP 言語を使用して携帯電話番号が合法かどうかを確認する必要があります。今回は、PHPを使って携帯電話番号を認証する方法を以下の観点から詳しくご紹介します。
中国では携帯電話番号は 11 桁なので、まず入力された携帯電話番号が 11 桁であるかどうかを確認する必要があります。 11 桁の長さである場合、それ以外の場合は正規の携帯電話番号ではありません。 PHP では、strlen() 関数を使用して文字列の長さを取得し、入力された携帯電話番号が 11 桁かどうかを判断できます。
if (strlen($mobile) != 11) { // 不是一个合法的手机号码 }
中国では、携帯電話番号の最初の 3 桁が異なる通信事業者を表すため、確認する必要があります。入力された携帯電話番号の最初の 3 桁を検証して、その正当性を確認します。
// 中国移动: 134/135/136/137/138/139/150/151/152/157/158/159/182/183/184/187/188/198 // 中国联通: 130/131/132/155/156/185/186/166 // 中国电信: 133/149/153/173/177/180/181/189/199 $prefix = substr($mobile, 0, 3); // 截取前三位 if (!in_array($prefix, ['134', '135', '136', '137', '138', '139', '150', '151', '152', '157', '158', '159', '182', '183', '184', '187', '188', '198', '130', '131', '132', '155', '156', '185', '186', '166', '133', '149', '153', '173', '177', '180', '181', '189', '199'])) { // 不是一个合法的手机号码 }
中国では、携帯電話番号には特定の形式要件があります。一般的な形式は次のとおりです:
// 11位数字,如:13912345678 // 带区号的11位数字,如:02012345678、075512345678 // 带“-”的11位数字,如:139-1234-5678、020-1234-5678、0755-1234-5678
したがって、正規表現を使用して、上記の形式要件が満たされているかどうかを確認する必要があります。
// 11位数字 if (!preg_match('/^1[3-9]\d{9}$/', $mobile)) { // 不是一个合法的手机号码 } // 带区号的11位数字 if (!preg_match('/^0\d{2,3}\d{7,8}$/', $mobile)) { // 不是一个合法的手机号码 } // 带“-”的11位数字 if (!preg_match('/^(\d{3}-|\d{4}-)?\d{7,8}$/', $mobile)) { // 不是一个合法的手机号码 }
最後に、上記の 3 つの検証方法を組み合わせて、PHP で携帯電話番号の検証を実装します。
function validateMobile($mobile) { if (strlen($mobile) != 11) { return false; } $prefix = substr($mobile, 0, 3); if (!in_array($prefix, ['134', '135', '136', '137', '138', '139', '150', '151', '152', '157', '158', '159', '182', '183', '184', '187', '188', '198', '130', '131', '132', '155', '156', '185', '186', '166', '133', '149', '153', '173', '177', '180', '181', '189', '199'])) { return false; } if (!preg_match('/^1[3-9]\d{9}$/', $mobile) && !preg_match('/^0\d{2,3}\d{7,8}$/', $mobile) && !preg_match('/^(\d{3}-|\d{4}-)?\d{7,8}$/', $mobile)) { return false; } return true; } // 示例 if (validateMobile('13912345678')) { echo '手机号码合法'; } else { echo '手机号码不合法'; }
上記は PHP で携帯電話番号を検証する方法であり、上記 3 つの検証方法を組み合わせることで、入力された携帯電話番号の合法性と正確性を効果的に保証できます。実際の開発では、このメソッドをパブリック関数にカプセル化して、複数のシナリオでの呼び出しを容易にすることもできます。
以上がPHPで携帯電話番号を確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。