加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 13:39:26 所属栏目:PHP教程 来源:网络整理
导读:我有一些php数组保存在.log文件中 我想把它们读入一个php数组,如 array [0] = .log文件中的第一个数组 array1 = .log文件中的第二个数组 解决方案here不适合我 它不会提供这样的文件或目录错误,但当我做include_once(‘file.log’)文件中的内容显示为输出(我
我有一些php数组保存在.log文件中

我想把它们读入一个php数组,如

array [0] = .log文件中的第一个数组
array1 = .log文件中的第二个数组

解决方案here不适合我

它不会提供这样的文件或目录错误,但当我做include_once(‘file.log’)文件中的内容显示为输出(我不知道为什么)请帮助

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

http://php.net/manual/en/function.serialize.php

编辑描述使用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,$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',serialize($parent));
fclose($fh);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读