En PHP, la comparaison des chaînes et la correspondance sont des opérations très courantes. Lorsque vous traitez ce type de problème, nous devons souvent ignorer le cas pour la correspondance floue. PHP fournit de nombreuses fonctions de manipulation de chaînes pour répondre à cette exigence, parmi laquelle la fonction strnatcasecmp est un outil très pratique.
StrnatcasecMP est une fonction intégrée en PHP qui compare deux chaînes et ignore le cas. En comparant, cette fonction considère le tri naturel des nombres, c'est-à-dire, si la chaîne contient des nombres, il se compare sur la valeur du nombre, et pas seulement par le code ASCII du caractère. Cela rend StrnatcasecMP particulièrement adapté à la gestion des chaînes contenant des numéros, tels que les numéros de version ou tout autre texte avec des nombres.
int strnatcasecmp ( string $str1 , string $str2 )
$ str1 : la première chaîne à comparer.
$ str2 : la deuxième chaîne à comparer.
Valeur de retour:
Si les deux chaînes sont égales, retournez 0 .
Si la première chaîne est plus petite que la deuxième chaîne, un nombre négatif est renvoyé.
Si la première chaîne est plus grande que la deuxième chaîne, un nombre positif est renvoyé.
Pour atteindre la correspondance floue des chaînes qui ignore le cas, nous devons seulement utiliser la fonction strnatcasecmpmp pour comparaison, car la fonction elle-même ignorera automatiquement le cas. Voici un exemple d'application pratique:
<?php
// Définir deux cordes
$string1 = "Version 1.10";
$string2 = "version 1.2";
// utiliser strnatcasecmp Les fonctions effectuent des comparaisons floues qui ignorent
if (strnatcasecmp($string1, $string2) == 0) {
echo "Deux cordes sont égales。";
} else {
echo "Deux cordes ne sont pas égales。";
}
?>
Résultat de sortie:
Deux cordes ne sont pas égales。
StrnatcasecMP n'est pas seulement un simple cas d'ignorance, il se compare également dans un ordre naturel. Cela signifie que lorsqu'une chaîne contient des nombres, PHP trie par la valeur réelle des nombres, plutôt que dans l'ordre ASCII des caractères. Par exemple:
<?php
// Comparez les numéros de version
$version1 = "Version 2.10";
$version2 = "Version 2.2";
// utiliser strnatcasecmp Faire une comparaison
if (strnatcasecmp($version1, $version2) == 0) {
echo "Version égale。";
} else {
echo "Les versions ne sont pas égales。";
}
?>
Résultat de sortie:
Les versions ne sont pas égales。
Dans cet exemple, 2.10 est considéré comme supérieur à 2,2 , ce qui est cohérent avec notre façon intuitive de trier les nombres.
Dans le développement réel, nous devrons peut-être combiner la correspondance de cordes avec les adresses d'URL, en particulier lorsque vous comparez les chaînes de différentes sources. Ici, nous pouvons utiliser StrnatcasecMP pour correspondre à deux URL, en ignorant leur cas. Voici un exemple:
<?php
// deux URL Chaîne
$url1 = "https://gitbox.net/user/abc";
$url2 = "https://gitbox.net/user/ABC";
// utiliser strnatcasecmp Comparer URL
if (strnatcasecmp($url1, $url2) == 0) {
echo "这deux URL égal。";
} else {
echo "这deux URL 不égal。";
}
?>
Résultat de sortie:
这deux URL égal。
En utilisant la fonction StrnatcasecMP , les développeurs PHP peuvent facilement implémenter des comparaisons de chaînes floues qui ignorent les caractéristiques supérieures et inférieures, et considérer automatiquement le tri naturel des nombres lors de la comparaison. Qu'il s'agisse d'une chaîne simple ou d'une chaîne impliquant des numéros de version ou des nombres, StrnatcasecMP est une fonction très pratique. Combiné avec des scénarios d'application dans le développement réel, tels que la comparaison d'URL, nous pouvons facilement réaliser des opérations de correspondance de cordes plus intelligentes.