PHPCon Poland 2024

strncasecmp

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

strncasecmpСравнивает первые n символов строк без учёта регистра в бинарно-безопасном режиме

Описание

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

Функция работает аналогично функции strcasecmp(), за исключением того, что можно указать максимальное количество символов в обеих строках, которые будут участвовать в сравнении.

Список параметров

string1

Первая строка.

string2

Вторая строка.

length

Количество символов, которые участвуют в сравнении.

Возвращаемые значения

Функция возвращает -1, если значение string1 меньше значения string2, 1, если значение string1 больше значения string2, и 0, если строки равны.

Список изменений

Версия Описание
8.2.0 Теперь функция возвращает -1 или 1; раньше она возвращала отрицательное или положительное число.

Примеры

Пример #1 Пример использования функции strncasecmp()

<?php

$var1
= 'Hello John';
$var2 = 'hello Doe';

if (
strncasecmp($var1, $var2, 5) === 0) {
echo
'Первые 5 символов переменных $var1 и $var2 равны при сравнении строк без учёта регистра';
}

?>

Смотрите также

  • strncmp() - Сравнивает первые n символов строк в бинарно-безопасном режиме
  • preg_match() - Выполняет проверку на соответствие регулярному выражению
  • substr_compare() - Сравнивает две строки от смещения до заданной длины символов в бинарно-безопасном режиме
  • strcasecmp() - Сравнивает строки без учёта регистра в бинарно-безопасном режиме
  • stristr() - Регистронезависимый вариант функции strstr
  • substr() - Возвращает подстроку

add a note

User Contributed Notes 2 notes

up
-7
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
-50
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