在 PHP 中比较字符串时忽略区分大小写

php
2022-08-30 10:09:26

我试图比较平等的单词,而[上下]的情况是无关紧要的。然而,PHP似乎不同意!关于如何强迫PHP在比较单词时忽略单词的大小写的任何想法?

$arr_query_words = ["hat","Cat","sAt","maT"];
for( $j= 0; $j < count($arr_query_words); $j++ ){
    $story_body = str_replace( 
        $arr_query_words[ $j ],
        '<span style=" background-color:yellow; ">' . $arr_query_words[ $j ] . '</span>',
        $story_body
   );
}

即使情况不同,有没有办法进行更换?


答案 1

使用str_ireplace执行不区分大小写的字符串替换(PHP 5 中可用):str_ireplace

$story_body = str_ireplace($arr_query_words[$j],
   '<span style=" background-color:yellow; ">'. $arr_query_words[$j]. '</span>',
    $story_body);

要不区分大小写地比较字符串,请使用 strcasecmp

<?php
$var1 = "Hello";
$var2 = "hello";
if (strcasecmp($var1, $var2) == 0) {
    echo '$var1 is equal to $var2 in a case-insensitive string comparison';
}
?>

答案 2

实现这一点的最简单,最广泛支持的方法是在比较它们之前将两个字符串小写,如下所示:

if(strtolower($var1) == strtolower($var2)) {
    // Equals, case ignored
}

您可能希望修剪要比较的字符串,只需使用类似如下的内容即可实现此功能:

if(strtolower(trim($var1)) == strtolower(trim($var2))) {
    // Equals, case ignored and values trimmed
}

推荐