美文网首页
PHP 简单实现版本号的比较

PHP 简单实现版本号的比较

作者: Jack_402e | 来源:发表于2018-08-08 18:17 被阅读0次

在日常的工作中,往往会有根据版本号的不同实现不同逻辑的需求,其中大部分为版本号的大小比较,处理这种问题的时候,大多数情况下最快捷能够想到的方法是根据某些标识符对字符串进行切割,然后循环比较。
这里提供一个比较方便的比较方法:将版本号中的数字提取出来,进行按位数进行补0之后直接进行比较大小。

实现代码如下:

  //正则提取字符串中的数字
 function reg($str){
        return preg_replace('/[^0-9]/','',$str);
    }
 //根据length的长度进行补0的操作,$length的值为两个版本号中最长的那个
  function add($str,$length){
        return str_pad($str,$length,"0");
    }
    //实现逻辑
  function versionCompare($v1,$v2){
      $length = strlen(reg($v1))>strlen(reg($v2)) ? strlen(reg($v1)): strlen(reg($v2));
      $v1 = add(reg($v1),$length);
      $v2 = add(reg($v2),$length);
          if($v1 == $v2) {
              return 0;
          }else{
            return $v1>$v2?1:-1;
          }
     }

  eg:
  $v1 = "5.6.2-1";
  $v2 = "5.6.2";
  echo versionCompare($v1,$v2); //输出结果为1

注:对于一些有特殊规则的版本号,可能该方法并不适用。

相关文章

  • PHP 简单实现版本号的比较

    在日常的工作中,往往会有根据版本号的不同实现不同逻辑的需求,其中大部分为版本号的大小比较,处理这种问题的时候,大多...

  • 在Windows下为PHP安装redis扩展

    - 1.根据PHP版本号,编译器版本号和CPU架构, - 选择php_redis和php_igbinary版本 -...

  • window环境安装php的redis扩展

    前提 根据PHP版本号,编译器版本号和CPU架构,选择php_redis和php_igbinary版本 下载 看准...

  • nodejs实现版本号比较

    一般程序版本号形式x.x.x.x的字符串,例如:1.0、1.0.0、1.0.0.0。如果直接采用字符串比较大小,会...

  • Windows下为PHP5.6安装redis扩展

    1.查看php版本信息 2.根据PHP版本号,编译器版本号和CPU架构去下载 选择php_redis-2.2.5-...

  • 隐藏php版本号

    http的X-Powered-By默认会显示php的版本号,避免使用有漏洞的版本,被针对,隐藏掉php版本号 执行...

  • 在Windows下为PHP5.5安装redis扩展

    1.根据PHP版本号,编译器版本号和CPU架构, 选择php_redis-2.2.5-5.5-ts-vc11-x8...

  • js实现版本号的大小比较

    版本号大小比较,如1.3.5, 1.10.1,直接在sort上扩展一下就好了: data.sort(functio...

  • PHP中的yield 用途

    yield生成器是php5.5之后出现的,yield提供了一种更容易的方法来实现简单的迭代对象,相比较定义类实现 ...

  • 简单的rpc实现(php)

    RPC全称为Remote Procedure Call,翻译过来为"远程过程调用"。主要应用于不同的系统之间的远程...

网友评论

      本文标题:PHP 简单实现版本号的比较

      本文链接:https://www.haomeiwen.com/subject/ooixbftx.html