Я делаю сравнение строк в PHP, но strcasecmp
всегда выводит, что строки не равны.
Вот мой код:
<?php
function multiexplode($delimiters,$string) {
$ready = str_replace($delimiters, $delimiters[0], $string);
$launch = explode($delimiters[0], $ready);
return $launch;
}
$owner = "Musica no tAatro: venha ja";
$owner_keys = multiexplode(array(".",":"," "),$owner);
$musica_c = array("musica","teatro");
$musica = 0;
if(sizeof($owner_keys) > 1){
foreach($musica_c as $key_c){
foreach($owner_keys as $cat){
if(strcasecmp($cat,$key_c)==0){
++$musica;
}else{
echo "do not match<br>";
}
}
}
}
?>
Почему strcasecmp
обнаружить разные строки?
strcasecmp
делает свою работу правильно.
Это соответствует одной паре строки, которая Musica
& musica
, Просто echo $musica;
в конце. Тем не менее, другая пара строк отличается, что tAatro
& teatro
, Вот почему не совпадают.
Это ожидаемое поведение.
Других решений пока нет …