PHP检查更新加载本地版本号并解压覆盖
<?php
error_reporting(0);
ob_implicit_flush(true);
$begin = microtime(true);
//检查更新,加载本地版本号
$config = require(__DIR__ . '/config.php');
$server = 'https://www.bang4.cn';
ob_flush();
$versions = json_decode(file_get_contents($server), true);
if (!isset($versions[$config['version']])) {
echo '当前已是最新版本!';
} else {
echo '当前版本:<b>', $config['version'], '</b> 服务器版本:<b>',
$versions[$config['version']]['version'], '</b><br/>';
ob_flush();
//开始下载
$remote_fp = fopen($versions[$config['version']]['url'], 'rb');
if(!is_dir(__DIR__.'/tmp')) mkdir(__DIR__.'/tmp');
$tmp = __DIR__ . '/tmp/' . date('YmdHis') . '.zip';
$local_fp = fopen($tmp, 'wb');
echo '开始下载...<br/>';
ob_flush();
while (!feof($remote_fp)) {
fwrite($local_fp, fread($remote_fp, 512));
}
fclose($remote_fp);
fclose($local_fp);
echo '下载完成,准备解压<br/>';
ob_flush();
require(__DIR__ . '/Zip.php');
$zip = new Zip();
$zip->extra($tmp, __DIR__);
echo '解压完成,准备删除临时文件<br/>';
ob_flush();
//删除补丁包
unlink($tmp);
echo '临时文件删除完毕<br/>';
ob_flush();
//更新本地版本号
$content = file_get_contents(__DIR__.'/config.php');
$content = str_replace($config['version'],$versions[$config['version']]['version'],$content);
file_put_contents(__DIR__.'/config.php',$content);
echo '更新完成!耗时',microtime(true) - $begin,'秒<br/>';
ob_flush();
ob_end_clean();
exit();
}
PHP检查更新加载本地版本号并解压覆盖的更多相关文章
- seo网页加速技术,预加载 DNS Prefetching 详解
seo网页加速技术,预加载 DNS Prefetching 详解 DNS Prefetching 是什么 : DNS 是什么-- Domain Name System,域名系统,作为域名和IP地址相互 ...
- Mysql加载本地CSV文件
Mysql加载本地CSV文件 1.系统环境 系统版本:Win10 64位 Mysql版本: 8.0.15 MySQL Community Server - GPL Mysql Workbench版本: ...
- #iOS问题记录#动态Html加载本地CSS和JS文件
所谓动态Html,指代码中组合生成的html字符串: 若需要加载本地CSS,图片,JS文件,则, 1,需要文件的全路径: 2,需要"file:///"标志: 例如: //获取文件全 ...
- 重新想象 Windows 8.1 Store Apps (81) - 控件增强: WebView 之加载本地 html, 智能替换 html 中的 url 引用, 通过 Share Contract 分享 WebView 中的内容, 为 WebView 截图
[源码下载] 重新想象 Windows 8.1 Store Apps (81) - 控件增强: WebView 之加载本地 html, 智能替换 html 中的 url 引用, 通过 Share Co ...
- iOS --- UIWebView的加载本地数据的三种方式
UIWebView是IOS内置的浏览器,可以浏览网页,打开文档 html/htm pdf docx txt等格式的文件. safari浏览器就是通过UIWebView做的. 服务器将MIM ...
- UIWebView加载本地html文件
UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(, , KScreenWidth, KScreenHeight-)]; ...
- 填补Resources和WWW加载本地资源的坑
总的来说Resources和WWW加载本地资源坑比较多,大多与路径有关. 下面代码构成了一个路径的预读模块: 此模块主要解决的坑是:Resources或WWW加载本地的文件夹中的多个文件时,无法获取文 ...
- viewpage listview gridview加载本地大图多图OOM处理办法
很少上博客园写东西了. 最近在写公司项目,由于需要加载本地相册通过viewpager方式来加载, 最后发现直接进入界面就OOM了. 经过几天的整理最终搞定. 现在将加载本地和加载网络图片的缓存工具类贴 ...
- cdnjquery加载失败加载本地
<script type="text/javascript" src="//libs.baidu.com/jquery/1.7.2/jquery.min.js&qu ...
- 360chrome,google chrome浏览器使用jquery.ajax加载本地html文件
使用360chrome和google chrome浏览器加载本地html文件时,会报错,提示: XMLHttpRequest cannot load file:///Y:/jswg/code/html ...
随机推荐
- 深度学习之PyTorch实战(5)——对CrossEntropyLoss损失函数的理解与学习
其实这个笔记起源于一个报错,报错内容也很简单,希望传入一个三维的tensor,但是得到了一个四维. RuntimeError: only batches of spatial targets supp ...
- Ubuntu2204部署容器引擎Containerd
为什么使用containerd? 使用containerd的原因主要有两点吧,第一个是docker在k8s1.24以后不再支持,如果需要在k8s中继续使用docker作为容器引擎,我们需要额外部署cr ...
- 在有限 computational budget 下,借助 low-fidelity 模型提高精度
论文名称:context-aware learning of hierarchies of low-fidelity models for multi-fidelity uncertainty qua ...
- 基于海思H3520DV400和QT5.9设计的车载终端DVR控制平台
目录 前言: 说明: 功能介绍: 设计思路: 详细设计: QT界面设计: 代码实现: 注意事项: (一)QT运行慢问题 (二)QT图层隐藏问题 (三)鼠标问题 (四)字体问题 (五)主界面图案 ( ...
- R-SVM-plot踩坑记录
并非所有的 svm 类型都支持plot.svm- 只有分类方法支持,而回归不支持. 所以代码应该svm_fit <- svm(factor(y)~x1+x2,data = df, kernel ...
- LeetCode 周赛 343(2023/04/30)结合「下一个排列」的贪心构造问题
本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问. 大家好,我是小彭. 今天是五一假期的第二天,打周赛的人数比前一天的双周赛多了,难道大家都只玩一天吗?这场周赛 ...
- DVWA文件上传
Low安全级别: <?php @eval($_POST['cmd']);?> 文本编辑器写入一句话木马,保存并改为php文件. 上传 成功上传,并返回路径 打开菜刀客户端连接 成功连接 反 ...
- 文心一言 VS chatgpt (15)-- 算法导论3.2 4~5题
四.函数 $\lceil \lg n \rceil !$ 多项式有界吗?函数 $\lceil \lg \lg n \rceil !$ 多项式有界吗? 文心一言: chatgpt: 对于第一个问题,函数 ...
- pandas 数据处理 一些常用操作
读取csv文件,打印列名称: import pandas as pd # data = pd.read_csv("guba_fc_result_20230413.csv") dat ...
- 【工作随手记】mysql优化之1
原SQL: SELECT p.id, p.NAME, p.idcard, p.phone, p.plate, p.FAMILY_NO FROM t_person_info p WHERE p.id I ...