strncasecmp

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

strncasecmpBinary safe case-insensitive string comparison of the first n characters

Description

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

This function is similar to strcasecmp(), with the difference that you can specify the (upper limit of the) number of characters from each string to be used in the comparison.

Parameters

string1

The first string.

string2

The second string.

length

The length of strings to be used in the comparison.

Return Values

Returns -1 if string1 is less than string2; 1 if string1 is greater than string2, and 0 if they are equal.

Changelog

Version Description
8.2.0 This function now returns -1 or 1, where it previously returned a negative or positive number.

Examples

Example #1 strncasecmp() example

<?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';
}
?>

See Also

  • strncmp() - Binary safe string comparison of the first n characters
  • preg_match() - Perform a regular expression match
  • substr_compare() - Binary safe comparison of two strings from an offset, up to length characters
  • strcasecmp() - Binary safe case-insensitive string comparison
  • stristr() - Case-insensitive strstr
  • substr() - Return part of a string

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