PHP開発では、電子メールアドレスを検証または分析する必要があることがよくあります。たとえば、メールアドレスが特定のドメイン名( gmail.com 、 M66.netなど)に属しているかどうかを確認する必要がある場合があります。この時点で、 StripoS()関数は役立ちます。
StripOS()は、ターゲット文字列にサブストリングが最初に表示される場所を見つけるPHPの文字列関数です。 Strpos()とは異なり、 Strpos()はケース非感受性です。これは、電子メールアドレスを処理するときに非常に便利です。これは、メールアドレスのドメイン部分が通常ケースに依存しないためです。
関数定義は次のとおりです。
int|false stripos ( string $haystack , mixed $needle [, int $offset = 0 ] )
$ haystackは、検索する文字列です。
$針はあなたが探したいものです。
$ offsetは、検索の開始場所を示すオプションのパラメーターです。
見つかった場合は、位置インデックス(0から始まる)を返します。見つからない場合は、 falseを返します。
実用的な例を見てみましょう。ユーザーが送信したメールアドレスがM66.NETドメインに属しているかどうかを判断するとします。
<?php
function isM66Email($email) {
// メールアドレスのドメイン名部分を抽出します
$domain = substr(strrchr($email, "@"), 1);
// 使用 stripos それがあるかどうかを判断します m66.net
if (stripos($domain, 'm66.net') !== false) {
return true;
}
return false;
}
// サンプルメール
$email1 = 'user123@m66.net';
$email2 = 'someone@gmail.com';
var_dump(isM66Email($email1)); // 出力: bool(true)
var_dump(isM66Email($email2)); // 出力: bool(false)
?>
strrchr($ email、 " @")を使用して、メールボックスの最後の@ 、つまりドメイン名の後に文字列を取得します。
substr()を使用して、beginning @ symbolを削除します。
StripOS()を使用して、ドメイン名にM66.netが含まれているかどうかを確認します。
StripOS()は位置インデックス(たぶん0 )を返すことに注意してください。したがって、収束!== falseを使用して、それが見つかったかどうかを判断する必要があります。
電子メールアドレスが特定の会社または組織から来ているかどうかを判断します。
バッチフィルタードメイン名の登録ユーザー。
異なるドメイン名のメールアドレスをパーソナライズします。
StripOS()は便利ですが、ドメイン名のみを正確に一致させ、 ABC.M66.NETのようなサブドメインを一致させたくない場合は、次のようなより厳格な文字列比較方法を使用することをお勧めします。