答案:通过shell_exec()执行Linux命令可获取PHP服务器CPU信息。1. 读取/proc/cpuinfo获取CPU型号、核心数等基本信息;2. 使用grep统计processor行数得逻辑核心数,提取cpu cores字段获物理核心数;3. 执行top命令解析Cpu(s)行,计算空闲率得出CPU使用率;4. 需注意shell_exec权限与安全,建议过滤输入并做异常处理,确保生产环境安全稳定运行。

在PHP中获取服务器CPU信息,可以通过调用系统命令来实现。虽然PHP本身没有内置函数直接读取CPU详情,但可以借助 shell_exec() 函数执行Linux系统的shell命令,从而获取详细的系统资源信息,包括CPU型号、核心数、使用率等。
Linux系统中,/proc/cpuinfo 文件保存了CPU的详细信息。使用 shell_exec() 读取该文件内容,可提取关键数据:
$output = shell_exec('cat /proc/cpuinfo');
echo '<pre class="brush:php;toolbar:false;">' . $output . '';
返回内容包含:
如果只想提取CPU型号,可以结合grep过滤:
$cpuModel = shell_exec("grep 'model name' /proc/cpuinfo | uniq");
echo "CPU型号:" . trim(str_replace('model name\t: ', '', $cpuModel));
通过统计 processor 行的数量,可得到逻辑核心(线程)总数:
$coreCount = (int)shell_exec("grep -c 'processor' /proc/cpuinfo");
echo "逻辑核心数(线程数):" . $coreCount;
物理核心数通常可在“cpu cores”字段中找到:
Motiff妙多
Motiff妙多是一款AI驱动的界面设计工具,定位为“AI时代设计工具”
334
查看详情
$physicalCores = shell_exec("grep 'cpu cores' /proc/cpuinfo | uniq");
echo "物理核心数:" . trim(str_replace('cpu cores\t: ', '', $physicalCores));
CPU使用率无法直接从 /proc/cpuinfo 获取,需通过 top 或 vmstat 等命令分析。下面是一个简单方式使用 top 命令获取近似值:
$cpuUsage = shell_exec("top -bn1 | grep 'Cpu(s)'");
preg_match('/\d+\.\d+ id/', $cpuUsage, $matches);
$idle = floatval(trim(str_replace(' id', '', $matches[0])));
$usage = 100 - $idle;
echo "CPU使用率:" . round($usage, 2) . "%";
说明:top 输出中的 “id” 表示空闲百分比,用100减去即为使用率。
例如添加基础判断:
if (function_exists('shell_exec')) {
$result = @shell_exec('grep "model name" /proc/cpuinfo | head -1');
if ($result) {
echo "CPU信息:" . htmlspecialchars(trim($result));
} else {
echo "无法获取CPU信息";
}
} else {
echo "shell_exec被禁用,请检查php.ini配置";
}
基本上就这些。利用shell_exec结合Linux命令,能灵活获取服务器资源状态,适用于监控类功能开发。只要注意安全和兼容性,这种方式简单有效。
以上就是php如何获取服务器cpu信息_php读取系统资源信息的shell_exec应用的详细内容,更多请关
注其它相关文章!
相关文章:
如何创建没有密码的Windows本地账户_跳过微软账户登录的技巧【教程】
Kafka Streams中基于消息头条件过滤消息的实现指南
MongoDB聚合管道:正确匹配对象数组中_id的方法
淘宝网网页版登录入口 淘宝官方网页版快捷登录
Lar*el 8 多关键词数据库搜索优化实践
谷歌浏览器浏览体验优化_谷歌浏览器新版直连永久可用提示
J*aScript中管理异步API调用:确保操作顺序与数据一致性
怎么搭建一个php网站源码_搭php网站源码搭建教程
Steam官网入口直达 Steam注册及登录步骤
Golang如何使用new_Go new分配内存机制讲解
qq游戏免费畅玩入口_qq游戏电脑版快速启动
树莓派传感器触发:通过Twilio API发送WhatsApp消息教程
C++如何生成随机数_C++ random库使用方法与范围设置
c++如何使用折叠表达式(Fold Expressions)_c++17可变参数模板新技巧
蓝湖怎样用切图标注提对接效率_蓝湖用切图标注提对接效率【设计对接】
Win10文件资源管理器“此电脑”分组怎么关 Win10恢复经典视图【技巧】
神经网络二分类模型训练异常:高损失与完美验证准确率的排查与修正
PHP URL参数传递与500错误调试指南
Tabulator表格日期时间排序问题及自定义解决方案
《噬血代码2》新预告片发布 展示游戏剧情
LINUX的perf命令入门_LINUX官方性能分析工具的使用与解读
vivo云服务网页版登录 怎么登录vivo云服务网页版
Python实时数据流中的动态最值查找策略
PHP:从文本中提取带逗号的数字价格教程
如何使用J*aScript精确选择并批量修改特定父元素下子链接的样式
Centos/Linux 系统下安装 composer 的完整步骤
Win10磁盘清理工具在哪 Win10打开并使用磁盘清理【教程】
PHP面向对象编程中避免重复创建PDO数据库连接的最佳实践
大象笔记网页版入口 印象笔记网页版登录入口
163邮箱官方主页登录 直达网易邮箱登录核心页面
学习通在线学习平台 学习通网页版直接进入课程中心
Win10系统服务哪些可以禁用 Win10安全优化服务列表【干货】
qq游戏跨平台入口_qq游戏多设备同步登录
c++如何使用std::memory_order控制原子操作顺序_c++ C++11内存模型详解
Selenium Python中处理点击后新窗口加载冻结问题的策略与实践
Node.js中HTML按钮与J*aScript函数交互的正确姿势
JUnit5/Mockito:优雅测试内部依赖与异常处理的实践
sublime如何配置Go语言开发环境_sublime搭建Golang编译运行系统
sublime怎么预览Markdown渲染效果_Markdown Preview插件 for sublime教程
iCloud登录入口网页版 苹果iCloud官网登录
MAC的“快捷指令”怎么同步到iPhone_MAC利用iCloud同步所有设备的自动化指令
c++中的std::launder有什么实际用途_c++对象生命周期与指针优化
Go语言HTML解析:利用Goquery精准获取指定元素内容
Yandex官网免登录入口_俄罗斯Yandex搜索引擎一键访问
163邮箱注册官网 免费申请163个人邮箱
将PCM16音频转换为W*并编码为Base64:浏览器环境下的手动处理指南
Win11 BitLocker密码忘了怎么办 Win11找回BitLocker恢复密钥方法【解决】
Win10如何开启蓝牙功能_Windows10找不到蓝牙开关解决方法
outlook中文官网入口地址 outlook官方中文版直达首页链接
如何优雅地扩展SprykerGlue后端API授权逻辑,使用spryker/glue-backend-api-application-authorization-connector-extension