©
                    本文档使用
                    php中文网手册 发布
                
(PHP 4, PHP 5)
strcasecmp — 二进制安全比较字符串(不区分大小写)
$str1 
   ,  string $str2 
   )二进制安全比较字符串(不区分大小写)。
str1 第一个字符串。
str2 第二个字符串。
   如果 str1 小于
   str2 返回 < 0;
   如果 str1
   大于 str2
   返回 > 0;如果两者相等,返回 0。
  
Example #1 strcasecmp() 范例
  <?php
$var1  =  "Hello" ;
 $var2  =  "hello" ;
if ( strcasecmp ( $var1 ,  $var2 ) ==  0 ) {
    echo  '$var1 is equal to $var2 in a case-insensitive string comparison' ;
}
 ?>   
[#1] chris at cmbuckley dot co dot uk [2011-12-28 16:59:18]
A simple multibyte-safe case-insensitive string comparison:
<?php
function mb_strcasecmp($str1, $str2, $encoding = null) {
    if (null === $encoding) { $encoding = mb_internal_encoding(); }
    return strcmp(mb_strtoupper($str1, $encoding), mb_strtoupper($str2, $encoding));
}
?>
Caveat: watch out for edge cases like "?".
[#2] alvaro at demogracia dot com [2010-07-29 05:35:06]
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.
[#3] [2002-08-27 06:53:49]
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!