【问题标题】:partial string comparision in phpphp中的部分字符串比较
【发布时间】:2009-10-22 10:37:54
【问题描述】:

我在两个字符串中存储了两个 ip 地址值

a = '116.95.123.111'
b = '116.95.122.112'

我只想比较 ip 地址的前两部分,即两个字符串中的 116.95 部分,并且由于两个字符串中的相同,我的比较应该返回 true。如何在 PHP 中进行部分字符串比较?

【问题讨论】:

    标签: php string-comparison


    【解决方案1】:

    substr_compare 是二进制安全的。

    【讨论】:

      【解决方案2】:

      IP 地址可以包含前导零。爆炸时,可以将它们作为整数进行比较,从而忽略前导零。

      $a = "116.95.123.111";
      $b = "116.095.123.111"   // same IP as $a, but with leading zero
      

      “干净”的方式是这样的......

      $ip1 = explode(".", $a);
      $ip2 = explode(".", $b);
      
      if (($ip1[0] == $ip2[0]) && (ip1[1] == $ip2[1])) {
        // success. Do something
      } else {
        // not valid
      }
      

      【讨论】:

        【解决方案3】:

        在这种特殊情况下(比较 IP 地址)

        if((ip2long($a) >> 16) == (ip2long($b) >> 16)) echo "equal";
        

        【讨论】:

          猜你喜欢
          • 2011-01-10
          • 1970-01-01
          • 2023-02-14
          • 1970-01-01
          • 1970-01-01
          • 2012-05-05
          • 2018-09-16
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多