3 838 2020-11-20 16:35:32
收藏最近在做一个桌面客户端软件,顺手给它加上了在线更新的功能:与服务端的最新软件进行版本比对,如果本地版本低于服务端版本就提示升级。
常规思路是在服务端放个配置文件,里面写入版本号,然后再通过 api 输出。然而这样每次都要手动去修改版本号,难免会手抖将版本号输错。好在,咱们的 php 是万能的。因此可以直接用 php 来读取服务器上最新版 exe 的版本号,方便省事可靠!
相关代码如下:
/** * PHP 读取 exedll 文件版本号 * * @auth @腾讯电脑管家(https://zhidao.baidu.com/question/246143241010222924.html) * @param $filename 目标文件 * @return 读取到的版本号 */
function
getFileVersion(
$filename
){
$fileversion
=
''
;
$fpFile
= @
fopen
(
$filename
,
"rb"
);
$strFileContent
= @
fread
(
$fpFile
,
filesize
(
$filename
)); fclose(
$fpFile
);
if
(
$strFileContent
) {
$strTagBefore
=
'FileVersion'
; // 如果使用这行,读取的是 FileVersion //
$strTagBefore
=
'ProductVersion'
; // 如果使用这行,读取的是 ProductVersion
$strTagAfter
=
''
;
if
(preg_match(
"/$strTagBefore(.*?)$strTagAfter/"
,
$strFileContent
,
$arrMatches
)) {
if
(
count
(
$arrMatches
) == 2) {
$fileversion
=
str_replace
(
""
,
''
,
$arrMatches
[1]); } } }
return
$fileversion
;}
网上找到还有一种读取方法,不过只支持 Windows 服务器。留以备用。
/** * PHP 读取 exedll 文件版本号(仅支持Windows服务器) * * @auth https://zhidao.baidu.com/question/475823802.html * @param $filename 目标文件(必须是完整的路径) * @return 读取到的版本号 */
function
getFileVersion(
$filename
){
$fso
=
new
COM(
'Scripting.FileSystemObject'
);
return
$fso
->GetFileVersion(
$filename
);}
本文地址:https://xzo.com.cn/develop/php/447.html
如果您认可我们的分享,有意与我们合作开展帝国cms网站建设与开发业务或插件定制,请联系右侧在线客服。我们能给您的,就是高质量的模板与售后。
标注了信息来源为下载鸥的文章皆为原创,如果是转载的优质文章,我们也都标注了出处。如果您喜欢我们的文章,请按照下载鸥所标注的文章出处进行标注,谢谢您的配合。
PHP是一种服务器端、跨平台、html嵌入式的脚本语言,其功能十分强大、入门简单。在过去,民间一直有说法称“PHP是最好的编程语言”,是PHP开发者对自身所使用语言的肯定。
PHP曾是最主流的网站web开发语言之一,现在也依然十分流行。
php判断时间戳是不是今天的实现方法:首先创建一个PHP示例文件;指定一个时间,并...
我们知道,str_replace是可以执行替换命令的,但一般是用于一对一替换,这个很好...
互联网上每天都有很多爬虫到处爬取内容,你可能不知道他们是干嘛的,但其中肯定...
在php中自带了大量了数组排序函数,使用起来非常简单,下面我们一一来介绍一下...
今天遇到这样一个问题:php启用了session,经过测试也发现session生效了。但在a...
页面提交post请求后被宝塔防火墙拦截,查看日志显示错误:参数值长度超过20w已...
isset() 函数用于检测变量是否已设置并且非 NULL。如果已经使用 unset() 释...
在网站建成后的维护与优化阶段,我们会面临无用栏目/数据处理的问题。量小的...
使用帝国cms的企业用户、新闻资讯类站点的用户很多,此类站点很多时候需要有...
帝国cms默认只有上次登录时间与ip,没有一个记录清单,所以今天,我们分享这个帝...
用户体验是我们的需求,百度蜘蛛的认可更是我们的需求。毕竟,没有收录排名,何来...
帝国cms 对接纳米数据(www.nami.com)接口,本接口主要接收、整理足球比赛实时数...
许多网站会做一些小功能小插件给客户使用以增强用户黏性,比如图片转文字,这种...
通过本插件,可以实现帝国cms网站对接百度云api实现图像清晰度增强的功能。经...
帝国cms有自带的给关键词添加内链功能,但需要手动添加关键词,容易出现疏漏和...
下载鸥开发了这款帝国cms封禁ip插件,自动记录访问情况,让我们可以更快的识别...