server-monitor-xp/check.php

68 lines
2.0 KiB
PHP
Raw Permalink Normal View History

2019-09-02 14:14:55 +08:00
<?php
/*
* 版本号比较 by sam 20170412
* @param $version1 版本A :5.3.2
* @param $version2 版本B :5.3.0
* @return int -1版本A小于版本B , 0版本A等于版本B, 1版本A大于版本B
*
* 版本号格式注意:
* 1.要求只包含:点和大于等于0小于等于2147483646的整数 的组合
* 2.boole型 true置1false置0
* 3.不设位默认补0计算版本号5等于版号5.0.0
* 4.不包括数字 负数 的版本号 ,统一按0处理
*
* @example:
* if (versionCompare('5.2.2','5.3.0')<0) {
* echo '版本1小于版本2';
* }
*/
function versionCompare($versionA, $versionB)
{
if ($versionA > 2147483646 || $versionB > 2147483646) {
throw new Exception('版本号,位数太大暂不支持!', '101');
}
$dm = '.';
$verListA = explode($dm, (string) $versionA);
$verListB = explode($dm, (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 1;
} else if ($verListA[$i] < $verListB[$i]) {
return -1;
} else if ($i == ($len - 1)) {
return 0;
}
}
}
$version = $_GET['version'];
2019-09-02 18:47:49 +08:00
$latestVersion = "0.1.2";
2019-09-02 14:14:55 +08:00
if (versionCompare($version, $latestVersion) < 0) {
$result = [
'status' => 1,
'downloadURL' => 'https://tool.y-bi.top/server-monitor-xp-' . $latestVersion . '.zip',
'newVersion' => $latestVersion,
];
} else {
$result = [
'status' => 0,
];
}
header('Content-Type:application/json; charset=utf-8');
echo json_encode($result, JSON_UNESCAPED_SLASHES);