phpinfo输出太长怎么分段看_精简显示自定义技巧【技巧】

可通过分段显示、参数精简、CSS隐藏、JSON导出及CLI工具五种方式优化phpinfo()可读性:一用output_buffering截取模块;二传位掩码如INFO_CONFIGURATION限制输出;三注入CSS隐藏非必要区块;四转JSON前端分页渲染;五用grep/less命令行分段浏览。

如果在浏览器中直接访问 phpinfo() 页面,内容过于冗长且难以快速定位关键信息,则可以通过精简输出或分段查看的方式提升可读性。以下是实现 phpinfo() 分段显示与自定义精简的多种方法:

一、使用 output_buffering + 字符串截取按模块分段

通过捕获 phpinfo() 的原始输出并按内置模块标题(如“PHP Credits”、“Configuration”)进行正则分割,可将长页面拆解为独立区块,便于逐个查看。

1、在 PHP 脚本中启用输出缓冲:ob_start()

2、调用 phpinfo(INFO_ALL) 输出全部信息。

3、使用 ob_get_contents() 获取完整 HTML 字符串。

4、用正则匹配

.*?

结构提取各模块块。

5、对每个模块块单独输出,并添加导航锚点链接,例如 Configuration

Configuration

配合使用。

二、限制 phpinfo() 输出范围仅显示指定类别

phpinfo() 支持传入位掩码参数,避免输出全部信息,从而从源头减少内容长度。可根据需要组合常量精确控制输出范围。

1、只显示 PHP 版本与编译信息:phpinfo(INFO_GENERAL)

2、仅输出加载的扩展列表:phpinfo(INFO_MODULES)

3、只显示当前配置项(php.ini 设置):phpinfo(INFO_CONFIGURATION)

4、组合多个类别,例如显示配置与环境变量:phpinfo(INFO_CONFIGURATION | INFO_ENVIRONMENT)

5、INFO_ALL 可能触发敏感信息泄露,生产环境严禁使用该参数

三、通过 CSS 隐藏非必要区域实现视觉分段

在 phpinfo() 输出前注入内联 CSS,利用 display:none 隐藏特定表格或标题区块,保留核心关注部分,形成逻辑分段视图。

1、在调用 phpinfo() 前输出 标签。

2、为每个

标题添加唯一 class,例如

Configuration

(需先捕获并重写输出)。

3、编写 CSS 规则隐藏不需要的区块:.section-credits, .section-license { display: none; }

4、为保留区块添加边框与内边距增强分段感:.section-configuration { border: 1px solid #ccc; margin: 1em 0; padding: 0.5em; }

5、必须确保所有样式规则作用于 phpinfo() 生成的原生 HTML 结构,不可依赖外部框架类名

四、导出为 JSON 后用前端工具分页渲染

将 phpinfo() 的结构化信息转换为 JSON 格式,脱离 HTML 表格束缚,便于前端按需加载、搜索与分页展示。

1、创建辅助函数遍历 ini_get_all()get_loaded_extensions()$_SERVER 等来源收集数据。

2、构建包含 version、extensions、configuration、server 等键的关联数组。

3、使用 json_encode() 输出标准 JSON 字符串,并设置响应头 Content-Type: application/json

4、在前端用 JavaScript 加载该 JSON,使用 Tab 组件分隔不同模块,例如“PHP 信息”、“扩展列表”、“INI 配置”。

5、此方式完全规避 phpinfo() 原生 HTML 的不可控结构,适合集成到内部运维面板

五、命令行下使用 grep 和 less 分段浏览

当通过 CLI 执行 phpinfo() 时,可借助 Unix 工具链实现动态分段检索,无需修改 PHP 代码。

1、编写临时脚本 echo.php:

2、执行 php echo.php | grep -A 20 "Configuration" 查看 Configuration 模块后 20 行。

3、使用 php echo.php | less 启动分页器,按 / 键搜索关键词如 “memory_limit”。

4、结合 awk 提取特定表格:例如 php echo.php | awk '/

Configuration/,//{print}'

5、CLI 方式不暴露 Web 接口,适合调试服务器本地环境,避免信息外泄风险