(PHP 4, PHP 5, PHP 7)

strcasecmpComparaison insensible à la casse de chaînes binaires


int strcasecmp ( string $str1 , string $str2 )

Comparaison insensible à la casse de chaînes binaires.

Liste de paramètres


La première chaîne.


La seconde chaîne.

Valeurs de retour

Retourne < 0 si str1 est inférieure à str2; > 0 si str1 est plus grande que str2, et 0 si les deux chaînes sont égales.


Exemple #1 Exemple avec strcasecmp()

$var2 "hello";
if (
strcasecmp($var1$var2) == 0) {
'$var1 est égale à $var2 (comparaison insensible à la casse)';

Voir aussi

  • strcmp() - Comparaison binaire de chaînes
  • preg_match() - Effectue une recherche de correspondance avec une expression rationnelle standard
  • substr_compare() - Compare deux chaînes depuis un offset jusqu'à une longueur en caractères
  • strncasecmp() - Compare en binaire des chaînes de caractères
  • stristr() - Version insensible à la casse de strstr
  • substr() - Retourne un segment de chaîne

add a note add a note

User Contributed Notes 3 notes

chris at cmbuckley dot co dot uk
6 years ago
A simple multibyte-safe case-insensitive string comparison:


function mb_strcasecmp($str1, $str2, $encoding = null) {
    if (
null === $encoding) { $encoding = mb_internal_encoding(); }
strcmp(mb_strtoupper($str1, $encoding), mb_strtoupper($str2, $encoding));


Caveat: watch out for edge cases like "ß".
16 years ago
The sample above is only true on some platforms that only use a simple 'C' locale, where individual bytes are considered as complete characters that are converted to lowercase before being differentiated.

Other locales (see LC_COLLATE and LC_ALL) use the difference of collation order of characters, where characters may be groups of bytes taken from the input strings, or simply return -1, 0, or 1 as the collation order is not simply defined by comparing individual characters but by more complex rules.

Don't base your code on a specific non null value returned by strcmp() or strcasecmp(): it is not portable. Just consider the sign of the result and be sure to use the correct locale!
alvaro at demogracia dot com
8 years ago
Don't forget this is a single-byte function: in Unicode strings it'll provide incoherent results as soon as both strings differ only in case. There doesn't seem to exist a built-in multi-byte alternative so you need to write your own, taking into account both character encoding and collation.
To Top