【问题标题】:Make php array case in-sensitive [duplicate]使php数组不区分大小写[重复]
【发布时间】:2013-07-10 20:12:01
【问题描述】:

如果有人搜索“TestING”,它仍应读作“testing”。我的网页搜索中包含一个 php 文件以阻止某些术语。但我必须为每个单词添加每个案例。有没有快速解决办法,所以情况无关紧要?

<?

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

?>

【问题讨论】:

  • 您如何使用$blocked?有几种方法可以做到这一点,但这取决于您使用的功能。
  • 数组包含它所包含的内容——你应该问的是如何以不区分大小写的方式将它与某个字符串进行比较
  • 随时查看PHP Manual

标签: php arrays case-insensitive


【解决方案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

【讨论】:

    【解决方案2】:

    由于你使用的是strstr,你可以用stristr替换它,这是不区分大小写的版本

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

    【讨论】:

      【解决方案3】:

      您可以使用 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';
      }
      

      【讨论】:

      • 我怎样才能做到这一点
      猜你喜欢
      • 2016-01-21
      • 1970-01-01
      • 1970-01-01
      • 2014-02-05
      • 2021-08-16
      • 1970-01-01
      • 2011-02-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多