phpinfo可否导出为文本_保存信息便于比对技巧【技巧】

可将 phpinfo() 输出转为纯文本保存:一、用 ob_get_contents() 捕获 HTML 后 strip_tags() 去标签写入 .txt;二、CLI 下执行 php -f info.php > out.txt 获取无 HTML 输出;三、设置 text/plain 响应头并 header() 强制下载。

如果需要将 phpinfo() 页面输出的内容保存为纯文本格式以便后续比对或归档,则不能直接通过浏览器“另存为”获得结构清晰的文本信息,因为默认输出是 HTML 格式且含大量样式与表格标签。以下是实现 phpinfo() 文本导出并便于比对的多种方法:

一、使用 ob_get_contents() 捕获并写入纯文本文件

该方法通过 PHP 输出缓冲机制截获 phpinfo() 的原始 HTML 输出,再借助 strip_tags() 去除所有 HTML 标签,仅保留可读文本内容,并写入 .txt 文件。

1、在 Web 服务器可执行目录下新建一个 PHP 文件(例如 info_export.php)。

2、在文件中写入以下代码:

立即学习“PHP免费学习笔记(深入)”;

3、通过浏览器访问该 PHP 文件,页面显示成功提示后,在同一目录下即可找到 phpinfo_output.txt。

4、打开该文本文件,确认其内容为无 HTML 标签的层级化纯文本,各模块以换行分隔,适合用 diff 工具比对。

二、调用 phpinfo() 并重定向输出至 CLI 环境

利用命令行模式下的 PHP 可绕过 Web 服务器限制,直接获取精简、无 HTML 的 phpinfo 输出,再通过 shell 重定向保存为文本。

1、确认服务器已安装 CLI 版本 PHP,执行 php -v 验证可用性。

2、创建一个仅含 的 PHP 文件(如 cli_info.php)。

3、在终端中执行命令:php -f cli_info.php > phpinfo_cli.txt 2>/dev/null

4、检查生成的 phpinfo_cli.txt,其内容为标准输出流文本,不含任何 HTML,字段对齐依赖 PHP 内部格式,适合快速比对扩展启用状态与路径信息。

三、修改 phpinfo() 输出为 plain/text 响应头并强制下载

通过设置 HTTP 响应头为 text/plain,可使浏览器将 phpinfo() 输出识别为纯文本而非 HTML,再结合 header() 触发文件下载行为,避免手动复制粘贴失真。

1、新建 export_plain.php 文件。

2、写入如下代码:

3、访问该文件时,浏览器将直接弹出下载对话框,保存的文件为 UTF-8 编码纯文本。

4、下载后可用任意文本编辑器打开,所有模块标题与值均保留原始顺序,无表格嵌套干扰,利于逐行比对版本号与配置项差异。

四、使用 print_r(get_defined_constants(true)) 辅助提取关键常量

phpinfo() 不显示全部常量定义,而 get_defined_constants(true) 可按类别返回所有已定义常量数组,将其与 phpinfo() 文本合并,可增强比对维度,尤其适用于检测编译期常量变化。

1、在导出 phpinfo() 文本的同一脚本末尾追加:file_put_contents('phpinfo_constants.txt', print_r(get_defined_constants(true), true), FILE_APPEND);

2、确保该语句执行前已关闭输出缓冲(如 ob_end_clean()),防止内容混杂。

3、生成的 phpinfo_constants.txt 将包含 CORE、pcre、json 等分类下的全部常量名与值,格式为 PHP 数组风格,可被 Python 或 Bash 脚本解析。

4、将该文件与主 phpinfo 输出文本并列存放,比对时可交叉验证如 JSON_VERSIONPCRE_VERSION 是否与 phpinfo 中“Additional Modules”区块一致。