Maison  >  Article  >  développement back-end  >  Comment effectuer une comparaison insensible à la casse des chaînes en php

Comment effectuer une comparaison insensible à la casse des chaînes en php

青灯夜游
青灯夜游original
2021-07-19 11:09:522010parcourir

Méthode : 1. Utilisez l'instruction "strcasecmp(string1,string2)" ; 2. Utilisez l'instruction "strncasecmp(string1,string2,length)" ; 3. Utilisez l'instruction "strnatcasecmp(string1,string2)".

Comment effectuer une comparaison insensible à la casse des chaînes en php

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 = &#39;https://www.php.cn/&#39;;
$url2 = &#39;HTTPS://www.php.cn/&#39;;
if(strcasecmp($url1, $url2) == 0){
    echo &#39;两个网址相同&#39;;
} else {
    echo &#39;两个网址不同&#39;;
}
?>

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!

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