PHP - Como comparar duas strings case insensitive
Dica publicada em PHP / Expressões Regulares
PHP - Como comparar duas strings case insensitive
Comparar duas strings em PHP é bem simples:
No exemplo acima a saída seria:
php teste.php
VivaOLinux NÃO é igual à vivaolinux
O problema começa quando você quer um resultado sem levar em conta o case das variáveis. Para resolver isso o PHP oferece uma função bem simples:
int strcasecmp ( string $str1 , string $str2 )
Retorna < 0 se str1 é menor do que str2; > 0 se str1 é maior do que str2, e 0 se forem iguais.
Adaptando nosso exemplo:
Testando:
php teste.php
VivaOLinux é igual à vivaolinux
Fonte: PHP: strcasecmp - Manual - php.net
Espero ter ajudado.
<?php
$a = "VivaOLinux";
$b = "vivaolinux";
if ($a==$b) {
echo "$a é igual à $b";
} else {
echo "$a NÃO é igual à $b";
}
?>
No exemplo acima a saída seria:
php teste.php
VivaOLinux NÃO é igual à vivaolinux
O problema começa quando você quer um resultado sem levar em conta o case das variáveis. Para resolver isso o PHP oferece uma função bem simples:
int strcasecmp ( string $str1 , string $str2 )
Retorna < 0 se str1 é menor do que str2; > 0 se str1 é maior do que str2, e 0 se forem iguais.
Adaptando nosso exemplo:
<?php
$a = "VivaOLinux";
$b = "vivaolinux";
if ( strcasecmp($a,$b)==0 ) {
echo "$a é igual à $b";
} else {
echo "$a NÃO é igual à $b";
}
?>
Testando:
php teste.php
VivaOLinux é igual à vivaolinux
Fonte: PHP: strcasecmp - Manual - php.net
Espero ter ajudado.
eu uso o mb_strtolower($str, 'utf-8') para fazer a comparação :)
http://php.net/manual/pt_BR/function.mb-strtolower.php