Position actuelle: Accueil> Derniers articles> [Comment utiliser la fonction Strncmp pour comparer les n premier caractères de deux chaînes? PHP PRATIQUES PRATIQUES PRATIQUES]

[Comment utiliser la fonction Strncmp pour comparer les n premier caractères de deux chaînes? PHP PRATIQUES PRATIQUES PRATIQUES]

gitbox 2025-07-17

En PHP, la comparaison des chaînes est une exigence très courante, et parfois nous n'avons pas besoin de comparer l'intégralité du contenu de deux cordes, se soucient simplement de leurs premiers personnages. À l'heure actuelle, la fonction StrnCMP peut être utile. Aujourd'hui, discutons de la façon d'utiliser la fonction Strncmp pour comparer les n premier caractères de deux chaînes.

Quelle est la fonction strncmp ?

StrnCMP est une fonction de comparaison de chaîne intégrée dans PHP, qui est utilisée pour comparer la longueur spécifiée de deux chaînes (c'est-à-dire les n caractères n premier). Contrairement à la fonction STRCMP , StrnCMP ne compare que N caractères du début d'une chaîne, sans se soucier des parties suivantes de la chaîne. Si les n caractères des premiers sont les mêmes, StrnCMP renvoie 0; S'il est différent, il renvoie un nombre négatif ou positif, selon la valeur ASCII du premier caractère différent.

Syntaxe de la fonction strncmp

 <span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-title function_ invoke__">strncmp</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$str1</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$str2</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$length</span></span><span>)
</span></span>
  • $ str1 : la première chaîne à comparer.

  • $ str2 : la deuxième chaîne à comparer.

  • $ Longueur : Spécifie le nombre de caractères à comparer.

Cette fonction renvoie un entier, et la signification de la valeur est la suivante:

  • 0 : signifie que les n premier caractère sont les mêmes.

  • Nombre négatif : indique que la valeur ASCII du premier caractère différent dans $ STR1 est inférieure à la valeur ASCII du $ STR2 .

  • Nombre positif : indique que la valeur ASCII du premier caractère différent dans $ STR1 est supérieure à la valeur ASCII du $ STR2 .

Exemple utilisant la fonction strncmpp

Regardons un exemple simple pour vous aider à mieux comprendre comment utiliser strncmp .

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$str1</span></span><span> = </span><span><span class="hljs-string">"Hello, World!"</span></span><span>;
</span><span><span class="hljs-variable">$str2</span></span><span> = </span><span><span class="hljs-string">"Hello, PHP!"</span></span><span>;

</span><span><span class="hljs-comment">// Avant comparaison5Personnages</span></span><span>
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strncmp</span></span><span>(</span><span><span class="hljs-variable">$str1</span></span><span>, </span><span><span class="hljs-variable">$str2</span></span><span>, </span><span><span class="hljs-number">5</span></span><span>);

</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$result</span></span><span> === </span><span><span class="hljs-number">0</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"avant5Personnages相同!"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"avant5Personnages不同!"</span></span><span>;
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Sortir:

 <span><span>avant5Personnages相同!
</span></span>

Dans cet exemple, nous utilisons StrnCMP pour comparer les 5 premiers caractères de deux chaînes. Étant donné que les 5 premiers caractères de $ str1 et $ str2 sont bonjour , strncmp renvoie 0, indiquant que cette partie de la chaîne est la même.

Pourquoi utiliser strncmp ?

L'avantage de l'utilisation de strncmp est qu'il peut contrôler avec précision le nombre de caractères à comparer, et parfois nous ne sommes intéressés que par les premiers caractères. Par exemple, lors de la vérification d'un nom d'utilisateur ou d'un mot de passe, nous n'avons peut-être besoin que de procéder à une vérification préliminaire des premiers caractères saisis. L'utilisation de strncmp peut éviter les frais généraux de performances inutiles.

Scénarios d'application pratiques

  1. Nom d'utilisateur ou préfixe de mot de passe correspondant : Lorsque vous devez vérifier les premiers caractères du nom d'utilisateur ou du mot de passe entré par l'utilisateur, vous pouvez utiliser StrnCMP pour une correspondance rapide.

  2. Assortiment du chemin d'URL : Lors du développement d'applications Web, il est souvent nécessaire de vérifier les premiers caractères de l'URL pour déterminer le type de ressource demandé ou pour effectuer une correspondance de routage.

  3. Comparaison de nom de fichier ou de chemin de fichier : Strncmp est un choix idéal si vous devez comparer les premiers caractères du nom de fichier pour déterminer le type de fichier ou effectuer un traitement.

résumé

La fonction STRNCMP fournit une méthode de comparaison de chaîne efficace et flexible dans PHP, ce qui convient particulièrement pour comparer les n premier caractères de deux chaînes. Qu'il s'agisse de vérification de l'entrée utilisateur, de correspondance de chemin ou d'autres scénarios de traitement de chaîne, StrnCMP peut vous aider à effectuer des tâches.

La maîtrise de l'utilisation de StrnCMP peut rendre votre programmation PHP plus efficace et précise, réduire les opérations de comparaison de chaînes inutiles et améliorer les performances du programme.