php 接口升级,App版本升级接口

news/2024/7/4 8:46:29

**APP版本升级**

>[success] 1.创建版本控制表

~~~

CREATE TABLE `td_app_update` (

`id` int(100) NOT NULL AUTO_INCREMENT,

`version` varchar(12) DEFAULT '0' COMMENT '版本号',

`url_name` varchar(100) DEFAULT NULL COMMENT 'app下载链接地址',

`upgrade` int(10) DEFAULT '0' COMMENT '2强制升级 1提醒升级 0不提醒升级',

`title` varchar(200) DEFAULT NULL COMMENT '更新标题',

`content` text COMMNET '更新内容',

`source` varchar(10) DEFAULT NULL COMMENT '来源 android 、ios',

`updatetime` varchar(50) DEFAULT NULL COMMENT '更新时间',

PRIMARY KEY (`id`)

) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8

~~~

>[success]2.接口实现

~~~

public function update(){

$clientVersion = strtolower($this->client_version); //获取客户端的版本号

$source = strtolower($this->os); //获取客户端操作系统

$where['source'] = array('eq',$source);

//获取当前的版本

$result = M('AppUpdate')->where($where)->find();

if($this->versionCompare($result['version'],$clientVersion)){

if(!empty($result['url_name'])){

$data['url'] = $result['url_name'];

}

$data['upgrade'] = $result['upgrade'];

$data['title'] = $result['title'];

$data['content'] = $result['content'];

json_success($data);

}

json_success('ok');

}

/**

*@param $version1 版本A 如:5.3.2

*@param $version2 版本B 如:5.3.0

*@return int false版本A小于或等于版本B true版本A大于版本B

*/

private function versionCompare($versionA,$versionB) {

$verListA = explode('.', (string)$versionA);

$verListB = explode('.', (string)$versionB);

$len = max(count($verListA),count($verListB));

$i = -1;

while ($i++ < $len) {

$verListA[$i] = intval(@$verListA[$i]);

if ($verListA[$i] <0 ) {

$verListA[$i] = 0;

}

$verListB[$i] = intval(@$verListB[$i]);

if ($verListB[$i] <0 ) {

$verListB[$i] = 0;

}

if ($verListA[$i]>$verListB[$i]) {

return true;

} else if ($verListA[$i]

return false;

} else if ($i==($len-1)) {

return false;

}

}

}

~~~


http://www.niftyadmin.cn/n/529820.html

相关文章

MyBatis-resultType 与 resultMap 中的几种返回类型

一、返回集合 1.返回JavaBean集合 public List<MyUser> selectMyUserByNameLike(String name); <!-- resultType 集合内的元素类型 --> <select id"selectMyUserByNameLike" resultType"myUser" parameterType"string">select…

flickr 相片url来源解析

相片來源 URL 知道相片的 ID、伺服器 ID、農場 ID 和密鑰&#xff08;如許多 API 方法返回的那樣&#xff09;後&#xff0c;你便可構建連結至相片的來源 URL。 URL 會採用以下格式&#xff1a;http://farm{farm-id}.static.flickr.com/{server-id}/{id}_{secret}.jpg or ht…

flickr 用户信息详析

flickr.people.getInfo Get information about a user.認證 此方法不需要認證。 引數 api_key &#xff08;必需的&#xff09; Your API application key. See here for more details. user_id &#xff08;必需的&#xff09; The NSID of the user to fetch information abo…

BZOJ1390 CEOI2008 Fences 凸包、Floyd最小环/DP

传送门 为了方便描述把固定点叫做白色点&#xff0c;Tree叫做黑色点 一种基于特殊性质的做法&#xff1a; 如果不算入选白色的权值&#xff0c;那么一定会选中所有白色点构成的凸包上的点&#xff0c;因为能够尽可能围更多的黑色点。然后我们在这个基础上删凸包上无用的白色点&…

respond.php,respond.php

//WEBSC商城资源define(IN_ECS, true);require dirname(__FILE__) . /includes/init.php;require ROOT_PATH . includes/lib_payment.php;require ROOT_PATH . includes/lib_order.php;$pay_code (!empty($_REQUEST[code]) ? trim($_REQUEST[code]) : );if (empty($pay_code)…

javascript检测flash版本

今天要做一个根据用户安装的是什么flash版本&#xff0c;为其播放哪断视频&#xff0c;所以搜了先用javaScrip检测出来版本后&#xff0c;再将其参数发给flash&#xff0c; <SCRIPT typetext/javascript><!--var i_flash;var v_flash;// Netscape if (navigator.plugi…

php 静态方法调用成员,PHP静态方法在成员变量中使用命名空间调用

是不是可以在PHP中做这样的事情&#xff1f;我想在一个成员变量中有一个名称空间,并且总是能够调用该类的每个静态方法,就像我在下面所做的那样.当然我的代码不起作用,但我只是想知道这是否可行,并且我接近解决方案,或者如果这完全不可能并且必须始终使用语法&#xff1a;\Stri…

注入(Injection)

注入(Injection)是: Java EE提供了注入机制&#xff0c;使您的对象能够获取对资源和其他依赖项的引用&#xff0c;而无需直接实例化它们。通过使用将字段标记为注入点的注释之一来装饰字段或方法&#xff0c;可以在类中声明所需的资源和其他依赖项。然后容器在运行时提供所需的…