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 — Binärdaten-sicherer und groß- und kleinschreibungs-unabhängiger Stringvergleich der ersten n Zeichen
Beschreibung
int strncasecmp
( string
$str1
, string $str2
, int $len
)Diese Funktion ist identisch zu strcasecmp() bis auf den Unterschied, dass Sie die (Mindest-) Anzahl von Zeichen, die von jeder Zeichenkette in den Vergleich einfließen sollen, angeben können.
Parameter-Liste
-
str1 -
Die erste Zeichenkette.
-
str2 -
Die zweite Zeichenkette.
-
len -
Die Länge der Zeichenkette, die für den Vergleich herangezogen werden soll.
Rückgabewerte
Gibt einen Wert <0 zurück, wenn str1 kürzer
ist als str2, einen Wert >0, wenn
str1 länger ist als str2,
und 0, wenn sie gleich sind.
Siehe auch
- strncmp() - String-Vergleich der ersten n Zeichen (Binary safe)
- preg_match() - Führt eine Suche mit einem regulären Ausdruck durch
- substr_compare() - Binärdaten-sicherer Vergleich zweier Strings, beginnend an einer bestimmten Position und endend nach einer festgelegten Länge
- strcasecmp() - Vergleich von Zeichenketten ohne Unterscheidung der Groß- und Kleinschreibung (Binary safe)
- stristr() - Wie strstr, aber unabhängig von Groß- bzw. Kleinschreibung
- substr() - Gibt einen Teil eines Strings zurück
khootz
27-Nov-2006 08:23
djdykes
31-Aug-2005 03: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
