当前位置: 首页 > news >正文

【脚本】提取phpstudy网站对应的PHP版本

需求背景

项目本地开发是时一直用的是 PHPStudy,不能像宝塔一样能直接查看每个项目的 PHP 版本。经过研究用 PHP 写了一个脚本,用来读取网站对应的PHP版本。

image-20251025145658848

image-20251025145614743

原理分析

  • PHP 版本与 FastCGI 端口的映射关系保存在 D:\phpstudy\COM\xp.ini

  • 项目的配置文件保存在 D:\phpstudy\Extensions\Nginx1.15.11\conf\vhosts

  • 项目的配置文件中记录有使用的 fastcgi 端口,结合映射关系即可获取项目所用 PHP 版本

关键文件

D:\phpstudy\COM\xp.ini 文件内容

image-20251025151621965

D:\phpstudy\Extensions\Nginx1.15.11\conf\vhosts 中某个项目的配置文件

image-20251025151551045

代码脚本

创建文件 phpstduy.php,保存以下代码:

<?php
$xpIni   = 'D:/phpstudy/COM/xp.ini';
$vhostDir= 'D:/phpstudy/Extensions/Nginx1.15.11/conf/vhosts';/* 1. 端口=>版本映射 */
$portVer = [];
foreach (file($xpIni, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES) as $l) {if (preg_match('/xp\.cn_cgi(\d{4})=.*php([\d\.]+)nts/', $l, $m)) {$portVer[$m[1]] = $m[2];}
}
/* 2. 遍历 conf */
foreach (glob("$vhostDir/*.conf") as $file) {$content = file_get_contents($file);if (preg_match('/fastcgi_pass\s+127\.0\.0\.1:(\d{4})/', $content, $m) && preg_match('/^\s*server_name\s+([^;]+);/m', $content, $m2)) {$port = $m[1];$ver  = $portVer[$port] ?? '未知';$serverName = trim($m2[1] ?? '');echo $serverName . "\t" . $ver . "\n";}
}
?>

运行结果

命令行中执行:php phpstduy.php ,即可查看每个项目对应的PHP版本

image-20251025153132051

优化建议

  • 把运行结果存入数组,结合html页面,部署为站点,美化查看效果。
  • vhosts 目录下的配置文件里可能出现多个 server_name 注意特殊处理
http://www.dtcms.com/a/528603.html

相关文章:

  • 沈阳做平板网站移动互联网开发是干什么的
  • StreamX部署详细步骤
  • java 正则表达式 所有的优先级
  • 做pc端网站平台网站做游戏活动
  • 【开发者导航】全自动 AI 视频创作与发布工具:LuoGen-agent
  • 网站 空间地址是什么苏州网站制作公司
  • Qt-多线程编程:互斥量 信号量
  • TERMSRV!WinStationLpcThread函数和TERMSRV!WinStationLpcHandleConnectionRequest函数分析
  • 网站体验方案wordpress更改前端引用
  • vue-day01
  • LLM驱动的自动化购车顾问及评测系统
  • 现代软件工程课程 个人博客作业2-结对编程项目总结
  • Elasticsearch8.4.1升级Elasticsearch9.1.5
  • 中国中小企业网站大学生招聘就业网
  • 深度学习(3)神经网络
  • FastAPI之 SQLAIchemy
  • [人工智能-大模型-70]:模型层技术 - 从数据中自动学习一个有用的数学函数的全过程,AI函数计算三大件:神经网络、损失函数、优化器
  • 网站开发最适合的浏览器wordpress下载页插件下载
  • EN 300-2006 欧松板(OSB)检测
  • 智能优化神经网络预测
  • 【Docker】镜像仓库
  • 2.Linux指令(三)
  • 【C++】哈希表:除留余散法和哈希桶的实现
  • 沧州网站运营自己做网站需要什么材料
  • PostgreSQL查不动?分区表+覆盖索引+物化视图的优化魔法了解下?
  • 多相CFD中的模型转换:Ansys Fluent中的从DPM到VOF和欧拉壁膜
  • 关于学校的网站模板免费下载高端网站建设磐石网络好
  • 在半导体制造中如何选择最佳的刻蚀方法?
  • 构建Django的Web镜像
  • 历史数据分析——锦江酒店