PHP比较两个版本的方法详解编程语言
PHP比较两个版本的方法 写app接口经常要用到 PHP接口的版本和app里面的版本做比较 如果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
?
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/19089.html
cjavaphp相关文章
- 【说站】php中n阶乘的实现方法
- PHP获取文件扩展名的4种方法
- centos6-7 yum安装php的方法(推荐)
- PHP 加解密方法大全详解编程语言
- Linux切换PHP版本:快速而安全的方法(linux切换php版本)
- PHP多进程并行执行php脚本详解编程语言
- PHP类里面调用全局的方法详解编程语言
- php发送qq邮件的方法详解编程语言
- php-fpm配置正确方法详解编程语言
- PHP stdclass转array的方法详解编程语言
- PHP替代session的方法详解编程语言
- PHP解析xml的方法详解编程语言
- php控制访问人数的方法详解编程语言
- PHP实现极光推送的方法详解编程语言
- 监控Redis运行状态:妙用PHP(php监听redis)
- 轻松实现高效数据调用:PHP如何与Redis集成(php调用redis)
- PHP检测MySQL性能的方法(php检测mysql)
- PHP从Linux中读取文件的方法(php读取linux文件)
- PHP管理MSSQL的方法探索(Php管理mssql)
- PHP连接MSSQL:让你更快更好地实现数据互通(php接mssql)
- php警告Creatingdefaultobjectfromemptyvalue问题的解决方法
- PHP采用curl模仿用户登陆新浪微博发微博的方法
- PHP魔术方法__ISSET、__UNSET使用实例
- win2003下PHP使用preg_match_all导致apache崩溃问题的解决方法
- php+MySQL判断update语句是否执行成功的方法
- php获取一个变量的名字的方法
- PHP获取mysql数据表的字段名称和详细信息的方法