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 — Comparación de los primeros n caracteres de cadenas, segura con material binario e insensible a mayúsculas y minúsculas
Descripción
int strncasecmp
( string
$str1
, string $str2
, int $len
)Esta función es similar a strcasecmp(), con la diferencia de que puede especificar el (límite superior de) número de caracteres de cada cadena a ser usado en la comparación.
Parámetros
-
str1 -
La primera cadena.
-
str2 -
La segunda cadena.
-
len -
La longitud de cadenas a ser usada en la comparación.
Valores devueltos
Devuelve < 0 si str1 es menor que
str2; > 0 si str1 es
mayor que str2, y 0 si son equivalentes.
Ver también
- strncmp() - Comparación segura a nivel binario de los primeros n caracteres entre strings
- preg_match() - Realiza una comparación con una expresión regular
- substr_compare() - Comparación segura a nivel binario de dos o más cadenas desde un índice, hasta una longitud dada de caracteres
- strcasecmp() - Comparación de string segura a nivel binario e insensible a mayúsculas y minúsculas
- stristr() - strstr insensible a mayúsculas y minúsculas
- substr() - Devuelve parte de una cadena
khootz ¶
6 years ago
djdykes ¶
7 years ago
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
