strncasecmp

(PHP 4 >= 4.0.2, PHP 5, PHP 7, PHP 8)

strncasecmp二进制安全比较字符串开头的若干个字符(不区分大小写)

说明

strncasecmp(string $string1, string $string2, int $length): int

该函数与 strcasecmp() 类似,不同之处在于可以指定两个字符串比较时使用的长度(即最大比较长度)。

参数

string1

第一个字符串。

string2

第二个字符串。

length

最大比较长度。

返回值

如果 string1 小于 string2 返回 -1;如果 string1 大于 string2,返回 1;如果两者相等,返回 0

更新日志

版本 说明
8.2.0 现在此函数返回 -1 或者 1,之前返回负数或正数。

示例

示例 #1 strncasecmp() 示例

<?php

$var1
= 'Hello John';
$var2 = 'hello Doe';
if (
strncasecmp($var1, $var2, 5) === 0) {
echo
'First 5 characters of $var1 and $var2 are equals in a case-insensitive string comparison';
}
?>

参见

  • strncmp() - 二进制安全比较字符串开头的若干个字符
  • preg_match() - 执行匹配正则表达式
  • substr_compare() - 二进制安全比较字符串(从偏移位置比较指定长度)
  • strcasecmp() - 二进制安全比较字符串(不区分大小写)
  • stristr() - strstr 函数的忽略大小写版本
  • substr() - 返回字符串的子串

add a note add a note

User Contributed Notes 2 notes

up
-5
sazalach at gmail dot com
8 years ago
<?php
$str1
= "red";
$str2 = "redent";
$test=strncasecmp($str1, $str2 , 3);
if (
$str1==$str2)
{
echo
"$test";
}
else
{
echo
"$test" ;
}
?>

if we run the above script then we will get return 0, because first string $str1 = "red" and second $str2 = "redent" but in comparison i have set the first three character will try to match. as per condition if two string are equal then it will return 0. But in below example it will return greater than 0 because here is str1 is greater than str2.

<?php
$str1
= "redmyshirt";
$str2 = "redent";
$test=strncasecmp($str1, $str2 , 4);
if (
$str1==$str2)
{
echo
"$test";
}
else
{
echo
"$test" ;
}
?>

as same if we run the below script it will return -1 because str1 is less than str2.

<?php
$str1
= "red";
$str2 = "redent";
$test=strncasecmp($str1, $str2 , 4);
if (
$str1==$str2)
{
echo
"$test";
}
else
{
echo
"$test" ;
}
?>

ya..i think its easy to understand
up
-47
saikumar dot msc at gmail dot com
10 years ago
Example:
<?php
$string
= “true”;
if(
strncasecmp($string, “Trudeau”, 4)) { print “True”; } else { print "False" }
?>

If we look at above example, immediately we will say the final output will be 'False', but that's not real.

Method "strncasecmp()" returns 1 because the first four characters of ‘Trud’ come before the first four characters of "true" when sorted not case sensitively.
To Top