PHPでは、strncmp()関数を使用して、2つの文字列の最初のn文字を比較し、比較結果を返します。これは、特に文字列のプレフィックスを厳密に一致させる必要がある場合、多くの場合に非常に役立ちます。 StrStr()とは異なり、Strncmp()は単なる部分的な一致ではなく、2つの文字列の最初のn文字の比較です。
この関数は3つのパラメーターを受け入れます。最初のパラメーターは最初の文字列、2番目は2番目の文字列、3番目は比較される文字の数です。
上記のコードでは、文字列「リンゴ」と「バナナ」の最初の3文字を比較します。 「A」のASCIIコードは97で、「B」のASCIIコードは98で、97は98未満であるため、戻り結果は-1です。最初の2文字のみを比較する場合、「AP」と「BA」 '' ASCII値が等しいため、結果は0です。
strncmp()を使用して、平文パスワードをハッシュパスワードと安全に比較できます。この場合、ハッシュ値をサーバー側に保存することがよくあり、比較すると、検証のためにプレーンテキストパスワードのハッシュ値を使用します。
上記のコードでは、ユーザーが入力したパスワードを、データベースに保存されたハッシュ値を使用して、パスワードが一致することを確認します。 「パスワードマッチ」は、パスワードが一致する場合にのみ出力されます。
場合によっては、2つのファイルの内容を比較する必要があります。この要件は、strncmp()関数を使用して簡単に実現できます。次のコード例は、2つのファイルの内容を比較する方法を示しています。
上記のコードでは、2つのテキストファイルの内容を比較します。コンテンツがまったく同じ場合、関数は0を返し、それ以外の場合は他の結果を返します。
strncmp()関数は主に文字列比較に使用されますが、配列を文字列に変換して比較できます。 json_encode()を使用して配列をjson文字列に変換し、比較のためにstrncmp()を使用できます。
上記のコードでは、2つの配列をJSON形式の文字列に変換し、strncmp()関数を使用してそれらを比較します。アレイのコンテンツがまったく同じである場合にのみ、関数は0を返します。
PHPのstrncmp()関数は、開発者が文字列、ファイルの内容、さらには配列を比較できる非常に便利なツールです。 STRNCMP()を効果的に使用することにより、特にパスワード検証やファイルの比較などのアプリケーションシナリオで、コードを簡素化して効率を改善できます。