可将 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_VERSION 或 PCRE_VERSION 是否与 phpinfo 中“Additional Modules”区块一致。











