Maison  >  Article  >  développement back-end  >  Existe-t-il une méthode de comparaison de chaînes en php ?

Existe-t-il une méthode de comparaison de chaînes en php ?

青灯夜游
青灯夜游original
2022-03-07 19:20:162659parcourir

Il existe des méthodes de comparaison de chaînes en php. PHP dispose d'une variété de méthodes intégrées de comparaison de chaînes : strcasecmp(), strcmp(), strcoll(), strnatcasecmp(), strnatcmp(), strncasecmp(), strncmp(), etc.

Existe-t-il une méthode de comparaison de chaînes en php ?

L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 7.1, ordinateur DELL G3

Il existe une méthode de comparaison de chaînes en php.

php dispose d'une variété de méthodes de comparaison de chaînes intégrées :

Fonction Description
strcasecmp() Compare deux chaînes (insensible à la casse).
strcmp() Compare deux chaînes (sensible à la casse).
strcoll() Compare deux chaînes (selon les paramètres locaux).
strnatcasecmp() Utilise un algorithme de "classement naturel" pour comparer deux chaînes (insensible à la casse).
strnatcmp() Utilise un algorithme de "classement naturel" pour comparer deux chaînes (sensible à la casse).
strncasecmp() Comparaison de chaînes des n premiers caractères (insensible à la casse).
strncmp() Comparaison de chaînes des n premiers caractères (sensible à la casse).
substr_compare() Compare deux chaînes commençant à une position de départ spécifiée (coffre-fort binaire et éventuellement sensible à la casse).

1. Comparez les chaînes basées sur les octets

Il existe deux façons de comparer les chaînes basées sur les octets, à savoir en utilisant la fonction strcmp() et la fonction strcasecmp(). La différence entre ces deux fonctions est que la fonction strcmp() distingue la casse des caractères, tandis que la fonction strcasecmp() ne distingue pas la casse des caractères. Puisque les méthodes d’implémentation de ces deux fonctions sont fondamentalement les mêmes, nous introduisons ici uniquement la fonction strcmp(). La fonction

strcmp() est utilisée pour comparer deux chaînes par octets.

Le format de syntaxe est le suivant :

strcmp(string1, string2)

Notez que cette fonction est sensible à la casse. Les paramètres string1 et le paramètre string2 spécifient les deux chaînes à comparer. S'ils sont égaux, la valeur de retour de la fonction est 0 ; si le paramètre string1 est supérieur au paramètre string2, la valeur de retour de la fonction est supérieure à 0 ; si le paramètre string1 est inférieur au paramètre string2, la valeur de retour de la fonction est inférieure à ; 0.

Utilisez la fonction srtcmp() et la fonction strcasecmp() pour comparer respectivement deux chaînes par octets. L'exemple de code est le suivant :

<?php
 $str1 = "PHP学习手册!";               // 定义字符串常量
 $str2 = "PHP学习手册!";               // 定义字符串常量
 $str3 = "phpcn";                      // 定义字符串常量
 $str4 = "PHPCN";                      // 定义字符串常量
 echo strcmp($str1,$str2);             // 这两个字符串相等
 echo strcmp($str3,$str4);             // 注意该函数区分大小写
 echo strcasecmp($str3,$str4);          //该函数不区分大小写
?>

Le résultat de sortie est :

0 1 0

Explication : En PHP, comparez les chaînes Les applications pour les comparaisons sont très larges. Par exemple, utilisez la fonction strcmp() pour comparer si le nom d'utilisateur et le mot de passe saisis dans le système de connexion utilisateur sont corrects. Si cette fonction n'est pas utilisée lors de la vérification de l'utilisateur et du mot de passe, alors le nom d'utilisateur et le mot de passe saisis, qu'ils soient en majuscules. ou en minuscules, peuvent se connecter à condition qu'ils soient corrects. Après avoir utilisé la fonction srtcmp(), cette situation est évitée. Elle est opportune et correcte, et toutes les lettres majuscules et minuscules doivent correspondre avant que vous puissiez vous connecter, améliorant ainsi la sécurité du site Web.

2. Comparaison des chaînes selon la méthode de tri naturel

En PHP, la comparaison des chaînes selon la méthode de tri naturel est réalisée en utilisant la fonction strnatcmp(). La méthode de tri par auto-reconnaissance compare la partie numérique de la chaîne et compare les nombres de la chaîne en fonction de leur taille. Sa syntaxe est au format suivant :

strnatcmp(string1, string2)

Conseil : Cette fonction est sensible à la casse. Si le paramètre string1 et le paramètre string2 sont égaux, la valeur de retour de la fonction est 0 ; si le paramètre string1 est supérieur au paramètre string2, la valeur de retour de la fonction est supérieure à 0 ; si le paramètre string1 est inférieur au paramètre string2, la valeur de retour de la fonction est inférieure à 0.

Remarque : Dans l'algorithme naturel, 2 est plus petit que 10. Cependant, dans la séquence informatique, 10 est plus petit que 2, car le premier nombre de "10" est "1", qui est plus petit que "2".

L'exemple de code d'utilisation de la fonction strnatcmp() pour comparer des chaînes selon la méthode de tri naturel est le suivant :

<?php
 $str1 = "inter2.jpg";                  // 定义字符串常量
 $str2 = "inter10.jpg";                 // 定义字符串常量
 $str3 = "phpcn1";                      // 定义字符串常量
 $str4 = "PHPCN2";                      // 定义字符串常量
 echo strnatcmp($str1,$str2);           // 按自然排序法进行比较,返回-1
 echo strnatcmp($str3,$str4);           // 按自然排序法进行比较,返回1
?>

Le résultat de sortie est :

-1  1

Remarque : Pour comparer selon la méthode de tri auto-reconnue, vous peut également utiliser un autre AND. La fonction strnatcmp() a le même effet que la fonction strnatcasecmp() insensible à la taille.

3. Spécifiez la fonction pour démarrer la comparaison à partir de la position de la chaîne source

La fonction strncmp() est utilisée pour comparer les n premiers caractères de la chaîne.

Sa syntaxe est au format suivant :

strncmp(string1, string2, length)

Sa description de paramètre est la suivante : Si le paramètre chaîne1 et le paramètre chaîne2 sont égaux, la valeur de retour de la fonction est 0 ; si le paramètre chaîne1 est supérieur au paramètre chaîne2, la valeur de retour de la fonction est 0 ; supérieur à 0 ; si le paramètre string1 est inférieur au paramètre string2, la valeur de retour de la fonction est inférieure à 0. Cette fonction est sensible à la casse.

Paramètre Description
string1 Spécifiez le premier objet chaîne participant à la comparaison
string2 Spécifiez le deuxième objet chaîne participer au comparatif
length Paramètre obligatoire, spécifie le nombre de chaînes de comparaison dans chaque chaîne

使用strncmp()函数比较字符串的前两个字符是否与源字符串相等,其实例代码如下所示:

<?php
 $str1 = "I like this";                  // 定义字符串常量
 $str2 = "i study php";                  // 定义字符串常量
 echo strncmp($str1,$str2,2);            // 比较前两个字符
?>

输出结果为:

-1

注释:从上面的代码中可以看出,由于变量$str2 中的字符串的首字母为小写,与变量$str1 中的字符串不匹配,所以两个字符串比较过后的函数返回值为 -1。

推荐学习:《PHP视频教程

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn