php文件保存读取,读取保存在文件中的php数组?

在将文本写入文件之前,可以序列化数组.然后,您可以从文件中读取数据,unserialize将其重新转换为数组.

编辑描述使用serialize / unserialize的过程:

所以你有一个数组:

$arr = array(

'one'=>array(

'subdata1',

'subdata2'

),

'two'='12345'

);

当我在该数组上调用serialize时,我得到一个字符串:

$string = serialize($arr);

echo $string;

OUTPUT: a:2:{s:3:"one";a:2:{i:0;s:8:"subdata1";i:1;s:8:"subdata2";}s:3:"two";s:5:"12345";}

所以我想把这个数据写入一个文件:

$fn= "serialtest.txt";

$fh = fopen($fn, 'w');

fwrite($fh, $string);

fclose($fh);

后来我想使用那个数组.所以,我会读取文件,然后unserialize:

$str = file_get_contents('serialtest.txt');

$arr = unserialize($str);

print_r($arr);

OUTPUT: Array ( [one] => Array ( [0] => subdata1 [1] => subdata2 ) [two] => 12345 )

希望有帮助!

编辑2嵌套演示

要将更多数组存储到此文件中,您必须创建一个父数组.这个数组是所有数据的容器,所以当你想添加另一个数组时,你必须解压缩父进程,并添加新数据,然后重新打包整个事情.

首先,让您的容器设置:

// Do this the first time, just to create the parent container

$parent = array();

$string = serialize($arr);

$fn= "logdata.log";

$fh = fopen($fn, 'w');

fwrite($fh, $string);

fclose($fh);

现在,从那里向前,当你想添加一个新的数组时,首先你必须把整个包都取出来,并把它们排序:

// get out the parent container

$parent = unserialize(file_get_contents('logdata.log'));

// now add your new data

$parent[] = array(

'this'=>'is',

'a'=>'new',

'array'=>'for',

'the'=>'log'

);

// now pack it up again

$fh = fopen('logdata.log', 'w');

fwrite($fh, serialize($parent));

fclose($fh);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值