PHP将数据写入TXT文件并读取的两种方法

Alice
Alice
发布时间:2026-10-14| 6人浏览过
原创

在PHP开发中,经常需要将内存中的数据(如数组、对象)临时保存或持久化到本地TXT文件中。本文将详细介绍两种最常用的实现方式:一是使用 serialize 函数进行二进制序列化,适用于所有数据类型;二是使用 json_encode 转换为JSON格式,适用于键值对结构数据。通过具体代码示例,演示如何调用 file_put_contents 写入及 file_get_contents 读取数据。

准备工作

在进行文件操作前,请确保PHP环境已安装且具备目标目录的写权限。以下操作默认针对 Windows 环境的路径写法(如 E:/data.txt),若在 Linux/macOS 环境下运行,请将路径修改为相对路径或绝对路径(如 ./data.txt)。

方法一:使用 serialize/unserialize 保存任意数据

serialize() 会将变量转换成可由存储或传输的字符串表示。这种方法的优势在于它可以完美保留数组、对象中的类型信息(包括关联键名、嵌套结构等)。读取时必须配合 unserialize() 还原。

第1步:写入序列化数据到TXT

  • 目的:将一个简单索引数组保存为文本文件。
  • 入口:PHP 脚本文件。
  • 动作:构建数据数组,序列化后写入文件。
<?php
  $data = array("上海","西安""北京");

  // 将数组存到指定的text文件中
  file_put_contents("E:/data.txt",serialize($data));
?>

第2步:从TXT文件读取并反序列化

  • 目的:读取上述文件内容并还原为原始数组。
  • 入口:PHP 脚本文件。
  • 动作:读取文件内容,执行反序列化,输出结果。
<?php
  $datas = unserialize(file_get_contents("E:/data.txt"));
  print_r($datas);
?>

方法二:使用 json_encode/json_decode 保存结构数据

如果你的数据主要是键值对结构(如关联数组),将其转换为 JSON 格式存储是更通用的做法。JSON 具有更好的可读性,且便于与其他系统(如前端JS、其他语言后端)交互。注意:json_encode 只能处理支持 JSON 规范的数据类型(如字符串、数字、布尔值、数组、对象)。

第1步:写入JSON格式数据

  • 目的:将带有键名的关联数组转换为JSON字符串并存入文件。
  • 参数:建议使用 FILE_PRETTY_PRINT 选项美化JSON输出(可选),增加可读性。
<?php
  $data = array("现代"=>"上海","文化"=>"西安","首都"=>"北京");

  // 将数组以JSON格式存到指定的text文件中
  file_put_contents("E:/data.txt",json_encode($data));
?>

第2步:读取并解析JSON

  • 注意:json_decode 默认返回对象(Object),如需获取数组形式,需传入第二个参数 true。
<?php
  // 获取数据并解码为关联数组
  $datas = json_decode(file_get_contents("E:/data.txt"), TRUE);
  print_r($datas);
?>

排错与维护建议

  • 编码问题:如果中文显示乱码,请确保你的PHP文件和TXT保存的文件编码均为 UTF-8。json_encode 可搭配 JSON_UNESCAPED_UNICODE 常量直接使用,避免中文被转义成Unicode编码。
    例如: file_put_contents('E:/data.txt', json_encode($data, JSON_UNESCAPED_UNICODE));
  • 文件权限:若写入失败,检查 Web 服务器用户(如 www-data, IIS AppPool)是否对目标文件夹拥有写入权限。
  • 数据安全:TXT文件直接存储在服务器上,若存储敏感数据,建议加密序列化内容或设置隐藏目录/禁止直接访问,防止用户通过URL直接下载数据。

以上就是PHP中将数据存入TXT文件并显示的详细内容,更多关于PHP文件读写与数据序列化的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。