Skip to content

Latest commit

 

History

History
37 lines (27 loc) · 1.63 KB

write-array.md

File metadata and controls

37 lines (27 loc) · 1.63 KB
title date categories tags
PHP把数组写入文件
2014-08-08 05:44:47 -0700
PHP
php
php基础
php数组

项目测试人员反映,线上数据编辑不修改,保存之后数据丢失?!翻查代码后,没有找到问题所在,决定把编辑加载时的数据写入到一个文件中,保存时把提交的数据写入到一个新的文件中,然后进行对比。可能有人会问为什么不直接对比数据库呢?因为测试人员反映的是有时报错。。。我只能把所有的都点一遍进行测试了。好吧,废话不多说,进入正题。

把数据写入txt文件自然是用file_put_contents()了,我刚开始是直接取数组$data,然后写入文件,可是写入后才发现,txt里是一堆的ArrayArrayArrayArrayArray。。。

好吧,既然不能直接的把数组作为第二个参数使用,那我就写入字符串得了。
而写入字符串我想到了两个办法

1、序列化数组
想到数组转字符串首先想到的肯定是序列化存储,反序列化读取呀。

$write = serialize($write);
file_put_contents($_SERVER['DOCUMENT_ROOT']."/test/{$id}_old.txt", $write);

2.使用var_export()将数组转成字符串再保存

var_export() — 输出或返回一个变量的字符串表示

$write = var_export($write, true);
file_put_contents($_SERVER['DOCUMENT_ROOT']."/test/{$id}_old.txt", $write);

因为我要直接明了的肉眼对比保存前后的数据差异,所以选择了第二种方式。

另外,看手册上说file_put_contents()是可以保存数组的啊,但是为什么我保存数据不对?实在查不到原因。。。