Position actuelle: Accueil> Derniers articles> Strncmp () Fonction en php: comment comparer les chaînes, les fichiers et les tableaux

Strncmp () Fonction en php: comment comparer les chaînes, les fichiers et les tableaux

gitbox 2025-06-17

Quelle est la fonction strncmp ()

Dans PHP, la fonction strncmp () est utilisée pour comparer les n premier caractères de deux chaînes et renvoyer le résultat de comparaison. Ceci est très utile à plusieurs reprises, surtout lorsque les préfixes de chaînes doivent être strictement adaptés. Contrairement à STRSTR (), StrnCMP () n'est pas seulement une correspondance partielle, c'est une comparaison des N premier caractères de deux chaînes.

Cette fonction accepte trois paramètres: le premier paramètre est la première chaîne, la seconde est la deuxième chaîne, et le troisième est le nombre de caractères à comparer.

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

Dans le code ci-dessus, nous comparons les trois premiers caractères des cordes «Apple» et «banane». Étant donné que le code ASCII de «A» est 97, et que le code ASCII de «B» est 98 et 97 est inférieur à 98, le résultat de retour est -1. Si vous ne comparez que les deux premiers caractères, le résultat est 0, car les valeurs «ap» et «ba» '' sont égales.

Scénarios d'application de comparaison de la fonction strncmp () avec chaîne

1. Utilisez strncmp () pour comparer les mots de passe

Strncmp () peut être utilisé pour comparer en toute sécurité les mots de passe en texte clair avec les mots de passe de hachage. Dans ce cas, nous stockons souvent la valeur de hachage côté serveur, et lors de la comparaison, nous utilisons la valeur de hachage du mot de passe en texte clair pour la vérification.

 
$password = 'password1';
$hashed_password = md5($password);
// Hash le mot de passe en texte clair dans la base de données
// ...

// Comparez le mot de passe entré avec le mot de passe enregistré dans la base de données
$string1 = $hashed_password;
$string2 = $db_password;
$result = strncmp($string1, $string2, strlen($string1));

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

Dans le code ci-dessus, nous comparons le mot de passe entré par l'utilisateur avec la valeur de hachage stockée dans la base de données pour garantir que le mot de passe correspond. «Mot de mot de passe» est sortie uniquement lorsque le mot de passe correspond.

2. Utilisez strncmp () pour comparer le contenu des fichiers

Parfois, nous devons comparer le contenu de deux fichiers. Cette exigence peut être facilement réalisée en utilisant la fonction strncmp (). L'exemple de code suivant montre comment comparer le contenu de deux fichiers:

 
$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';
}

Dans le code ci-dessus, nous comparons le contenu de deux fichiers texte. Lorsque le contenu est exactement le même, la fonction renvoie 0, sinon il renvoie d'autres résultats.

3. Utilisez strncmp () pour comparer les tableaux

Bien que la fonction strncmp () soit principalement utilisée pour la comparaison des chaînes, nous pouvons convertir le tableau en une chaîne et le comparer. Vous pouvez utiliser json_encode () pour convertir un tableau en une chaîne JSON, puis utiliser strncmp () pour comparaison.

 
$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';
}

Dans le code ci-dessus, nous convertissons deux tableaux en chaînes au format JSON et les comparons en utilisant la fonction strncmp (). La fonction renvoie 0 uniquement si le contenu du tableau est exactement le même.

Résumer

La fonction strncmp () dans PHP est un outil très utile qui permet aux développeurs de comparer les chaînes, les contenus de fichiers et même les tableaux. En utilisant efficacement strncmp (), nous pouvons simplifier le code et améliorer l'efficacité, en particulier dans les scénarios d'application tels que la vérification du mot de passe et la comparaison des fichiers.