i assume you can also use the ! (not) operator
<?php
if (!strncasecmp($string, 'Trudeau', 4)){
print "true";
}
?>
since booleans in PHP translate 0 to FALSE and any other integer to TRUE.
!0 = !false = true
!1 = !true = false
!-1 = !true = false
strncasecmp
(PHP 4 >= 4.0.2, PHP 5)
strncasecmp — Сравнява първите n знака на низ, нечувствително към регистъра и двоично сигурно
Описание
int strncasecmp
( string $str1
, string $str2
, int $len
)
Тази функция е подобна на strcasecmp(), с тази разлика, че можете да укажете (горната граница на) броя знаци (len ) от всеки низ, които да бъдат използвани при сравняването.
Параметри
- str1
-
Първият низ.
- str2
-
Вторият низ.
- len
-
Броят знаци, които да бъдат използвани при сравняването.
Връщани стойности
Връща < 0 ако str1 по-малък от str2 ; > 0 ако str1 е по-голям от str2 , и 0 ако са равни.
Вж. също
- preg_match() - Perform a regular expression match
- strcmp() - Двоично сигурно сравняване на низове
- strcasecmp() - Сравнява низове, нечувствително към регистъра и двоично сигурно
- substr() - Връща част от низ
- stristr() - Нечувствителен към регистъра вариант на функция strstr
- strstr() - Връща първата поява на низ
khootz
27-Nov-2006 01:23
djdykes
30-Aug-2005 09:43
Hi all,
be aware when comparing strings using the strcmp family. if you write code like this...
if (strncasecmp($string, 'Trudeau', 4))
print "true";
The above code returns 1 which evaluates to boolean 'true'
that statement will always be true... because these functions return 0 only when equal. so a better test would be
if ( (strncasecmp($string, 'Trudeau', 4)) == 0)
print "true";
always test these functions equality with 0
regards
