PHP比较两个版本的方法
2017-07-10 11:18
417 查看
PHP比较两个版本的方法 写app接口经常要用到 PHP接口的版本和app里面的版本做比较 <?php /** * 版本处理类,提供版本与数字互相转换,方便入库后进行比较筛选 * Date: 2015-06-30 * Author: fdipzone * ver: 1.0 * * Func: * public version_to_integer 将版本转为数字 * public integer_to_version 将数字转为版本 * public check 检查版本格式是否正确 * public compare 比较两个版本的值 */ class Version{ // class start /** * 将版本转为数字 * @param String $version 版本 * @return Int */ public function version_to_integer($version){ if($this->check($version)){ list($major, $minor, $sub) = explode('.', $version); $integer_version = $major*10000 + $minor*100 + $sub; return intval($integer_version); }else{ throw new ErrorException('version Validate Error'); } } /** * 将数字转为版本 * @param Int $version_code 版本的数字表示 * @return String */ public function integer_to_version($version_code){ if(is_numeric($version_code) && $version_code>=10000){ $version = array(); $version[0] = (int)($version_code/10000); $version[1] = (int)($version_code%10000/100); $version[2] = $version_code%100; return implode('.', $version); }else{ throw new ErrorException('version code Validate Error'); } } /** * 检查版本格式是否正确 * @param String $version 版本 * @return Boolean */ public function check($version){ $ret = preg_match('/^[0-9]{1,3}\.[0-9]{1,2}\.[0-9]{1,2}$/', $version); return $ret? true : false; } /** * 比较两个版本的值 * @param String $version1 版本1 * @param String $version2 版本2 * @return Int -1:1<2, 0:相等, 1:1>2 */ public function compare($version1, $version2){ if($this->check($version1) && $this->check($version2)){ $version1_code = $this->version_to_integer($version1); $version2_code = $this->version_to_integer($version2); if($version1_code>$version2_code){ return 1; }elseif($version1_code<$version2_code){ return -1; }else{ return 0; } }else{ throw new ErrorException('version1 or version2 Validate Error'); } } } // class end $version = '2.7.1'; $obj = new Version(); // 比较两个版本 $version1 = '2.9.9'; $version2 = '10.0.1'; $result = $obj->compare($version1, $version2); echo $result; // -1 // 比较两个版本 $version1 = '2.9.9'; $version2 = '1'; $result = $obj->compare($version1, $version2); echo $result; // 1 ?> 查看原文:http://newmiracle.cn/?p=1828
相关文章推荐
- php比较两个字符串长度的方法
- PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法
- 如何比较两个EXCEL 文件的不同(各个EXCEL版本的方法)
- php面向对象的方法重载两种版本比较
- php比较两个字符串长度的方法
- php实现比较两个字符串日期大小的方法
- PHP中2种方法快速地合并数组,你知道吗?合并两个数组有几种方式,试比较它们的异同
- php实现比较两个文件夹异同的方法
- php实现比较两个字符串日期大小的方法
- PHP比较两个文件夹异同的方法
- php 比较任意两个版本号的大小
- PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法
- php实现比较两个字符串日期大小的方法
- php实现比较两个字符串日期大小的方法
- php实现比较两个文件夹异同的方法
- IIS上安装PHP5.3的完整教程方法(及5.3.0以后版本的方法)
- 两个浮点数比较大小方法
- Windows 下PHP+IIS的安装方法(PHP版本为5.0)
- .Net 中如何比较两个版本号的大小