使php数组不区分大小写

时间:2013-07-10 20:12:02

标签: php arrays case-insensitive

如果有人搜索“测试”,它仍然应该读作“测试”。我有一个php文件包含在我的网页搜索中以阻止某些条款。但我必须为每个单词添加每个案例。有没有快速解决方案,所以案件无关紧要?

<?

$blocked=array('nude','nsfw','xrated');

?>

3 个答案:

答案 0 :(得分:1)

另一种做事方式而不是始终使用strtolower进行检查而不是in_array,请使用此功能。

function in_arrayi($needle, $haystack) {
    return in_array(strtolower($needle), array_map('strtolower', $haystack));
}

请参阅http://us2.php.net/manual/en/function.in-array.php#89256

答案 1 :(得分:0)

您可以使用strtolower将所有内容设为小写。

$var1 = "Hello";
$var2 = "hello";
if (strtolower($var1) == strtolower($var2)) {
    echo '$var1 is equal to $var2 in a case-insensitive string comparison';
}

或者您可以使用strcasecmp。

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

答案 2 :(得分:0)

由于您正在使用strstr,因此可以将其替换为stristr,这是不区分大小写的版本

if(stristr($_GET[q],$term)==false)