PHP将数据写入TXT文件并读取的两种方法
在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文件读写与数据序列化的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













