Aktueller Standort: Startseite> Neueste Artikel> STRNCMP () -Funktion in PHP: So vergleichen Sie Zeichenfolgen, Dateien und Arrays

STRNCMP () -Funktion in PHP: So vergleichen Sie Zeichenfolgen, Dateien und Arrays

gitbox 2025-06-17

Was ist die Funktion strncmp ()

In PHP wird die Funktion strncmp () verwendet, um die ersten N -Zeichen von zwei Zeichenfolgen zu vergleichen und das Vergleichsergebnis zurückzugeben. Dies ist in vielen Fällen sehr nützlich, insbesondere wenn String -Präfixe streng übereinstimmen müssen. Im Gegensatz zu Strstr () ist STRNCMP () nicht nur ein teilweise Match, sondern ein Vergleich der ersten N -Zeichen von zwei Saiten.

Diese Funktion akzeptiert drei Parameter: Der erste Parameter ist die erste Zeichenfolge, der zweite ist die zweite Zeichenfolge und die dritte ist die Anzahl der zu verglichenen Zeichen.

 
$string1 = 'apple';
$string2 = 'banana';
$result = strncmp($string1, $string2, 3);
echo $result;

Im obigen Code vergleichen wir die ersten drei Zeichen der Strings 'Apple' und 'Banana'. Da der ASCII -Code von 'A' 97 ist und der ASCII -Code von 'B' 98 und 97 weniger als 98 beträgt, beträgt das Rückgabeergebnis -1. Wenn Sie nur die ersten beiden Zeichen vergleichen, ist das Ergebnis 0, weil "AP" und "BA" ASCII -Werte gleich sind.

Anwendungsszenarien des Vergleichs der Funktion von strncmp () mit String

1. Verwenden Sie Strncmp (), um Passwörter zu vergleichen

STRNCMP () kann verwendet werden, um Klartextkennwörter mit Hash -Passwörtern sicher zu vergleichen. In diesem Fall speichern wir den Hash -Wert häufig auf der Serverseite und verwenden beim Vergleich den Hash -Wert des Klartextkennworts zur Überprüfung.

 
$password = 'password1';
$hashed_password = md5($password);
// Hash das Klartextkennwort in die Datenbank
// ...

// Vergleichen Sie das eingegebene Passwort mit dem in der Datenbank gespeicherten Passwort
$string1 = $hashed_password;
$string2 = $db_password;
$result = strncmp($string1, $string2, strlen($string1));

if ($result == 0) {
    echo 'Password match';
} else {
    echo 'Password does not match';
}

Im obigen Code vergleichen wir das vom Benutzer eingegebene Kennwort mit dem in der Datenbank gespeicherten Hash -Wert, um sicherzustellen, dass das Kennwort übereinstimmt. 'Passwort -Match' wird nur dann ausgegeben, wenn das Passwort übereinstimmt.

2. Verwenden Sie Strncmp (), um den Dateiinhalt zu vergleichen

Manchmal müssen wir den Inhalt von zwei Dateien vergleichen. Diese Anforderung kann leicht mit der Funktion von strncmp () erreicht werden. Das folgende Codebeispiel zeigt, wie Sie den Inhalt von zwei Dateien vergleichen:

 
$file1 = 'file1.txt';
$file2 = 'file2.txt';

$fp1 = fopen($file1, 'r');
$contents1 = fread($fp1, filesize($file1));
fclose($fp1);

$fp2 = fopen($file2, 'r');
$contents2 = fread($fp2, filesize($file2));
fclose($fp2);

$result = strncmp($contents1, $contents2, strlen($contents1));

if ($result == 0) {
    echo 'File contents are identical';
} else {
    echo 'File contents are not identical';
}

Im obigen Code vergleichen wir den Inhalt von zwei Textdateien. Wenn der Inhalt genau gleich ist, gibt die Funktion 0 zurück, andernfalls wird andere Ergebnisse zurückgegeben.

3.. Verwenden Sie Strncmp (), um Arrays zu vergleichen

Obwohl die Funktion strncmp () hauptsächlich für den String -Vergleich verwendet wird, können wir das Array in eine Zeichenfolge umwandeln und vergleichen. Sie können JSON_Encode () verwenden, um ein Array in eine JSON -Zeichenfolge umzuwandeln und dann Strncmp () zum Vergleich zu verwenden.

 
$array1 = array('apple', 'banana');
$array2 = array('apple', 'banana');

$result = strncmp(json_encode($array1), json_encode($array2), strlen(json_encode($array1)));

if ($result == 0) {
    echo 'Arrays are identical';
} else {
    echo 'Arrays are not identical';
}

Im obigen Code konvertieren wir zwei Arrays in Zeichenfolgen im JSON -Format und vergleichen sie mithilfe von strncmp () -Funktion. Die Funktion gibt 0 nur dann zurück, wenn der Inhalt des Arrays genau gleich ist.

Zusammenfassen

Die Funktion von STRNCMP () in PHP ist ein sehr nützliches Tool, mit dem Entwickler Zeichenfolgen, Dateiinhalte und sogar Arrays vergleichen können. Durch die effektive Verwendung von strncmp () können wir den Code vereinfachen und die Effizienz verbessern, insbesondere in Anwendungsszenarien wie Kennwortüberprüfung und Dateivergleich.