Maison > Article > développement back-end > Comment effectuer une comparaison insensible à la casse des chaînes en php
Méthode : 1. Utilisez l'instruction "strcasecmp(string1,string2)" ; 2. Utilisez l'instruction "strncasecmp(string1,string2,length)" ; 3. Utilisez l'instruction "strnatcasecmp(string1,string2)".
L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 7.1, ordinateur DELL G3
Méthode 1 : Utiliser la fonction strcasecmp()
La fonction strcasecmp() n'est pas sensible à la casse lors de la comparaison de chaînes , le format de syntaxe est le suivant :
strcasecmp(string $str1, string $str2)
où $str1 et $str2 sont les deux chaînes à comparer.
Selon le résultat de la comparaison, si $str1 est inférieur à $str2, la valeur 6e8a6788ed2b50101d03bfc70e5889fc 0
est renvoyée ; si $str1 est égal à $str2, la valeur 0
; est restitué.
Les URL des sites Web ne sont pas sensibles à la casse, nous pouvons donc utiliser la fonction strcasecmp() pour comparer si deux URL sont identiques. L'exemple de code est le suivant :
<?php header("Content-type:text/html;charset=utf-8"); $url1 = 'https://www.php.cn/'; $url2 = 'HTTPS://www.php.cn/'; if(strcasecmp($url1, $url2) == 0){ echo '两个网址相同'; } else { echo '两个网址不同'; } ?>
Sortie :
两个网址相同
Méthode 2 : utilisez strncasecmp. () La fonction
strncasecmp() compare deux chaînes (insensible à la casse).
Syntaxe
strncasecmp(string1,string2,length)
参数 | 描述 |
---|---|
string1 | 必需。规定要比较的第一个字符串。 |
string2 | 必需。规定要比较的第二个字符串。 |
length | 必需。规定每个字符串用于比较的字符数。 |
Valeur de retour : Cette fonction renvoie :
0
- si deux chaînes sont égales
d464af4470393dd4d02c8f03072180850
- si chaîne1 est supérieure que chaîne2
Exemple :
<?php echo strncasecmp("Hello","Hello",6); echo "<br>"; echo strncasecmp("Hello","hELLo",6); ?>
Sortie :
0 0
Méthode 3 : Utilisation de la fonction strnatcasecmp()
La fonction strnatcasecmp() utilise un algorithme "naturel" pour comparer deux chaînes (insensible à la casse).
En arithmétique naturelle, le nombre 2 est inférieur au nombre 10. Dans le tri informatique, 10 est inférieur à 2 car le premier nombre de 10 est inférieur à 2.
Syntaxe
strnatcasecmp(string1,string2)
参数 | 描述 |
---|---|
string1 | 必需。规定要比较的第一个字符串。 |
string2 | 必需。规定要比较的第二个字符串。 |
Valeur de retour :
0
- si les deux chaînes sont égales
d464af4470393dd4d02c8f03072180850
- si chaîne1 est supérieure à chaîne2
Exemple:
<?php echo strnatcasecmp("2Hello world!","10Hello WORLD!"); echo "<br>"; echo strnatcasecmp("10Hello world!","2Hello WORLD!"); ?>
output:
-1 1
explanation: la différence entre l'algorithme naturel (strnatcmp) et l'algorithme de tri de chaîne informatique conventionnel (strcmp)
<?php $arr1 = $arr2 = array("pic1","pic2","pic10","pic01","pic100","pic20","pic30","pic200"); echo "Standard string comparison"."<br>"; usort($arr1,"strcmp"); print_r($arr1); echo "<br>"; echo "<br>"; echo "Natural order string comparison"."<br>"; usort($arr2,"strnatcmp"); print_r($arr2); ?>
output:
Standard string comparison Array ( [0] => pic01 [1] => pic1 [2] => pic10 [3] => pic100 [4] => pic2 [5] => pic20 [6] => pic200 [7] => pic30 ) Natural order string comparison Array ( [0] => pic01 [1] => pic1 [2] => pic2 [3] => pic10 [4] => pic20 [5] => pic30 [6] => pic100 [7] => pic200 )
recommend Learning: "php Tutorial" "
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!