最近在做一个桌面客户端软件,顺手给它加上了在线更新的功能:与服务端的最新软件进行版本比对,如果本地版本低于服务端版本就提示升级。

常规思路是在服务端放个配置文件,里面写入版本号,然后再通过 api 输出。然而这样每次都要手动去修改版本号,难免会手抖将版本号输错。好在,咱们的 php 是万能的[aru_2]因此可以直接用 php 来读取服务器上最新版 exe 的版本号,方便省事可靠![aru_53]

相关代码如下:[aru_47] /**

* PHP 读取 exe\dll 文件版本号

*

* @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 = 'F\0i\0l\0e\0V\0e\0r\0s\0i\0o\0n\0\0\0\0\0'; // 如果使用这行,读取的是 FileVersion

// $strTagBefore = 'P\0r\0o\0d\0u\0c\0t\0V\0e\0r\0s\0i\0o\0n\0\0'; // 如果使用这行,读取的是 ProductVersion

$strTagAfter = '\0\0';

if (preg_match("/$strTagBefore(.*?)$strTagAfter/", $strFileContent, $arrMatches))

{

if(count($arrMatches) == 2)

{

$fileversion = str_replace("\0", '', $arrMatches[1]);

}

}

}

return $fileversion;

}

网上找到还有一种读取方法,不过只支持 Windows 服务器。留以备用。 /**

* PHP 读取 exe\dll 文件版本号(仅支持Windows服务器)

*

* @auth https://zhidao.baidu.com/question/475823802.html

* @param $filename 目标文件(必须是完整的路径)

* @return 读取到的版本号

*/

function getFileVersion($filename)

{

$fso = new COM('Scripting.FileSystemObject');

return $fso->GetFileVersion($filename);

}

php.exe是什么,PHP读取exe软件版本号相关推荐

  1. Qt学习笔记之——生成exe可执行文件并打包生成安装软件

    之前用MFC生成过安装文件,今天想尝试采用Qt生成的exe文件打包并生成安装软件. 开始我认为比较简单,但是尝试过程中遇到了很多问题.下面一一列出来 首先:我认为,要完成一个软件,应尽可能的使用Rel ...

  2. 文件或目录windows/temp/explorer.exe损坏且无法读取 请运行chkdsk工具

    昨天机房出现了三台机子,开机以后提示:文件或目录windows/temp/explorer.exe损坏且无法读取 请运行chkdsk工具,然后就是蓝屏,无法进入系统,在网上找了很多资料无法解决,重装系 ...

  3. 计算机无法读取exe文件,电脑打不开exe文件怎么解决

    电脑打不开exe文件怎么解决?电脑exe文件怎么打开?exe是可执行文件的文件格式之一,可以在系统中直接运行,不过有些是病毒文件,所以要注意区分一下.有些朋友遇到了电脑打不开exe文件的情况,又不知道 ...

  4. pycharm打包exe时加上窗体及exe桌面图标

    一.pycharm打包exe时加上窗体及exe桌面图标 1.首先添加图片文件转py文件得工具pyrcc 打开File中的Settings 2.按步骤添加工具名称 Name:Pyqrc Program: ...

  5. 中了exe病毒文件夹变exe应用程序解决方法

    文件夹变exe应用程序是一种恶意病毒,专门删除电脑中有用的文件,把自己伪装成一个正常的文件.中了exe病毒文件夹变exe应用程序解决方法恢复步骤如下: 文件夹变exe应用程序是一种恶意病毒,专门删除电 ...

  6. exe编辑器_windows下的EXE文件大揭密

    当我们安装完Windows后,其中的文件到底是执行何种任务?某特定任务又由哪个文件来执行呢? 还有,从"开始"--"程序"--再点击"我所要执行的任务 ...

  7. golang EXE程序添加图标和详细信息(版本号,版权,公司信息等)

    golang EXE程序添加图标和详细信息(版本号,版权,公司信息等) 为什么要添加图标和详细信息 作为桌面程序,有一个图标,显得更正式一些.详细信息有版本号方便做版本识别.算了,编不下去了.不管那么 ...

  8. R语言技巧:读取sas软件的sas格式文件

    前面几期介绍了如下内容: 读取excel文件 对比方法 读取csv格式文件 对比方法read.csv 读取sav格式文件 读取spss 的sav格式文件 这期介绍读取sas软件的sas格式文件,代码如 ...

  9. VC自动生成软件版本号

    VC自动生成软件版本号 flyfish 目的: 软件的版本有主版本号.子版本号.修正版本号.编译版本号 其中编译版本号与SVN服务器的版本号(Revision)自动同步. 环境 需要在本机安装Tort ...

最新文章

  1. Stm32学了好久了,为什么做项目还是力不从心?
  2. 把php写入织梦,dedeCMS远程写入getshell(测试版本V5.7)
  3. 中国WEB 2.0的质变过程
  4. 表的插入、更新、删除、合并操作_19_通过表关联删除记录
  5. 【Linux】一步一步学Linux——VMware虚拟机三种网络模式详解(07)
  6. Android系统(120)-android的事件分发机制
  7. 《高效对话》— 综合素质提升书籍
  8. iOS app启动图片及icon图片及应用名设置
  9. HiveSQL正则表达式的应用
  10. axure怎么转换成html文件,AxureRP教程AxureRP如何生成HTML文件
  11. mmap之内存映射文件与常规文件操作比较
  12. 采用WPF开发第二版OFD阅读器
  13. 教你如何去掉桌面图标的蓝底
  14. 服务器启动首选项不是虚拟盘,没法开启CPU虚拟化,BIOS没有开启的选项
  15. 白城师范学院计算机系鲍金玲,企业绩效考核方法的比较与借鉴
  16. win7 mysql 管理员权限,win7管理员权限问题 TrustInstaller 获取权限
  17. (转)Apple Push Notification Services in iOS 6 Tutorial: Part 1/2
  18. ios设备如何安装chatgpt
  19. 【C/C++】fstream详解
  20. Android自定义系列——13.Matrix Camera

热门文章

  1. 【photoshop Action Manager】动作管理器 - 用法(一)
  2. JSP技术已死 ? (Java Server Page technology will die) ?
  3. react性能监控根据工具_高性能React:3个新工具可加快您的应用程序
  4. IOS ATS 配置
  5. Proteus软件安装并结合keil软件进行51程序设计和仿真
  6. C++九九乘法表(下三角)
  7. Android进阶:自定义视频播放器开发(上)
  8. 串口文件传输及点阵汉字字模的读取与显示
  9. Go 语言调度(一): 系统调度
  10. 中英文学习Python中的字典类型