La comparaison des cordes est une tâche cruciale dans le développement transversal, en particulier lorsqu'il s'agit de différents lieux. En utilisant le lieu correct, PHP assure des comparaisons de cordes précises dans une variété de langues et de contextes culturels. Cet article explorera en profondeur comment utiliser les paramètres des paramètres régionaux pour la comparaison des chaînes en PHP et comment résoudre des problèmes de comparaison dans différents lieux.
Dans PHP, les comparaisons de chaînes utilisent généralement la fonction STRCMP ou l'opérateur == . Cependant, ces méthodes sont sensibles à la casse par défaut et ignorent les paramètres des paramètres régionaux, ce qui peut conduire à des résultats incohérents lors des comparaisons inter-langues.
Pour résoudre ce problème, PHP fournit une fonction STRCOLL , qui permet aux développeurs d'effectuer des comparaisons de chaînes en fonction des paramètres de paramètres régionaux. Cette fonction renvoie une valeur entière pour représenter le résultat de comparaison de deux chaînes:
Lorsque vous utilisez la fonction STRCOLL , vous devez fournir un paramètre régional qui spécifie le langage, le pays et le jeu de caractères utilisés pour la comparaison. Par exemple, le lieu de l'anglais (US) est en_us.utf-8 .
$ String1 = 'Café';<br> $ string2 = 'Cafe';<br> $ result = strcoll ($ string1, $ string2);<br> if ($ result == 0) {<br> Les «chaînes d'écho sont égales en fonction des paramètres régionaux»;<br> } autre {<br> Les «chaînes d'écho ne sont pas également basées sur des paramètres régionaux»;<br> }
Dans cet exemple, la fonction Strcoll compare deux chaînes. Étant donné que la lettre éve avec accent est considérée comme la même que la lettre E sans accent dans le lieu anglais (US), la fonction renvoie 0, indiquant que les deux chaînes sont égales.
En plus de la fonction STRCOLL par défaut, PHP fournit également la fonction StrcasecMP pour les comparaisons locales insensibles aux cas. Cette fonction est utilisée de manière similaire à Strcoll , mais il ignore les différences de cas dans les chaînes.
$ String1 = 'Café';<br> $ string2 = 'Cafe';<br> $ result = strCasecmp ($ string1, $ string2);<br> if ($ result == 0) {<br> Les «chaînes d'écho sont également basées sur des paramètres régionaux, ignorant le cas»;<br> } autre {<br> Les «chaînes d'écho ne sont pas également basées sur des paramètres régionaux, ignorant le cas»;<br> }
Dans cet exemple, la fonction StrcasecMP compare deux chaînes et ignore les différences de cas. Par conséquent, la fonction renvoie 0, indiquant que les deux chaînes sont égales.
Lorsque vous utilisez STRCOLL et STRCASECMP pour la comparaison des chaînes, il est important de sélectionner les paramètres régionaux appropriés. Vous pouvez utiliser la fonction SetLocale pour obtenir ou définir les paramètres des paramètres régionaux actuels.
setlocale (lc_collate, 'en_us.utf-8');
Dans cet exemple, la fonction SetLocale définit les paramètres régionaux sur EN_US.UTF-8 , qui convient aux régions anglaises (US) et aux jeux de caractères UTF-8.
En résumé, PHP fournit un soutien social puissant, ce qui rend les comparaisons de chaînes dans des projets inter-langues plus précis. La maîtrise de l'utilisation correcte de ces fonctions aidera à améliorer votre efficacité et votre précision dans le développement multilingue.