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

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

青灯夜游
Libérer: 2023-03-11 17:34:02
original
2063 Les gens l'ont consulté

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)
Copier après la connexion

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 < 0 est renvoyée ; si $str1 est supérieur à $str2, la valeur > 0 est renvoyée ; si $str1 est égal à $str2, la valeur  ; 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;;
}
?>
Copier après la connexion

Sortie :

两个网址相同
Copier après la connexion

Méthode 2 : utilisez strncasecmp. () La fonction

strncasecmp() compare deux chaînes (insensible à la casse).

Syntaxe

strncasecmp(string1,string2,length)
Copier après la connexion
参数描述
string1必需。规定要比较的第一个字符串。
string2必需。规定要比较的第二个字符串。
length必需。规定每个字符串用于比较的字符数。

Valeur de retour : Cette fonction renvoie :

  • - si deux chaînes sont égales

  • <0 - si chaîne1 est inférieure à chaîne2

  • >0 - si chaîne1 est supérieure que chaîne2

Exemple :

<?php
echo strncasecmp("Hello","Hello",6);
echo "<br>";
echo strncasecmp("Hello","hELLo",6);
?>
Copier après la connexion

Sortie :

Copier après la connexion

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)
Copier après la connexion
参数描述
string1必需。规定要比较的第一个字符串。
string2必需。规定要比较的第二个字符串。

Valeur de retour :

  • - si les deux chaînes sont égales

  • <0 - si chaîne1 est inférieure à chaîne2

  • >0 - si chaîne1 est supérieure à chaîne2

Exemple:

<?php
echo strnatcasecmp("2Hello world!","10Hello WORLD!");
echo "<br>";
echo strnatcasecmp("10Hello world!","2Hello WORLD!");
?>
Copier après la connexion

output:

-1
1
Copier après la connexion

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);
?>
Copier après la connexion

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 )
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal