php将数组写入到文件的三种方法
php将数组或对象原样写入或保存到文件有三种方法可以实现
第一种方法是使用serialize,
第二种方法是使用print_r,
第三种方法是使用var_export,
本文章向大家介绍这三种方法是如何将数组写入到文件的,需要的朋友可以参考一下。
第一:serialize方法
使用 serialize 将数组序列化,存储在文件中;调用时,再使用 unserialize 还原。
<?php
$file='./cache/phone.php';
$array=array('color'=> array('blue','red','green'),'size'=> array('small','medium','large'));
//缓存
if(false!==fopen($file,'w+')){
file_put_contents($file,serialize($array));//写入缓存
}
//读出缓存
$handle=fopen($file,'r');
$cacheArray=unserialize(fread($handle,filesize($file)));
第二:print_r方法
用print_r 将数组打印到txt文件中。
<?php
$b = array (
'm' => 'monkey',
'foo' => 'bar',
'x' => array ('x', 'y', 'z')); $results = print_r($b, true);
file_put_contents('filename.txt', print_r($b, true));
?>
第三:var_export方法
用var_export 直接将数组以完整数组的形式存储到文件中。
<?php
$file='./cache/phone.php';
$array=array('color'=> array('blue','red','green'),'size'=> array('small','medium','large'));
//缓存
$text='<?php $rows='.var_export($array,true).';';
if(false!==fopen($file,'w+')){
file_put_contents($file,$text);
}else{
echo '创建失败';
}
将对象完整的存储并追加到文件末尾
$file = "notic_" . date("Ymd") . ".log";
$ct = date("Y-m-d H:i:s", time()); file_put_contents($file, var_export($object,true)."\r\n", FILE_APPEND);
ps: 正常情况下输出到网页的数组会有限制,
php var_dump
函数对数组进行打印
时,对多维数组
中数组的层级越多越深层,子数组会不显示,只用省略号
代替。这样一来不便于程序的调试
。
php的var_dump函
数是php模块中xdebug模块所支持
的,所以接下来我们需要配置这个xdebug即可。
修改 php.ini
;设置显示最大的子节点数
xdebug.var_display_max_children=
;设置显示最大的字节数
xdebug.var_display_max_data=
;设置显示最大得层级(深度)
xdebug.var_display_max_depth=
然后重启 php 服务
systemctl reload php-fpm nginx
php将数组写入到文件的三种方法的更多相关文章
- VC中加载LIB库文件的三种方法
VC中加载LIB库文件的三种方法 在VC中加载LIB文件的三种方法如下: 方法1:LIB文件直接加入到工程文件列表中 在VC中打开File View一页,选中工程名,单击鼠标右键,然后选中&quo ...
- js二维数组定义和初始化的三种方法总结
js二维数组定义和初始化的三种方法总结 方法一:直接定义并且初始化,这种遇到数量少的情况可以用var _TheArray = [["0-1","0-2"],[& ...
- Node.js写文件的三种方法
Node.js写文件的三种方式: 1.通过管道流写文件 采用管道传输二进制流,可以实现自动管理流,可写流不必当心可读流流的过快而崩溃,适合大小文件传输(推荐) var readStream = fs. ...
- Logstash处理json格式日志文件的三种方法
假设日志文件中的每一行记录格式为json的,如: {"Method":"JSAPI.JSTicket","Message":"JS ...
- java 分次读取大文件的三种方法
1. java 读取大文件的困难 java 读取文件的一般操作是将文件数据全部读取到内存中,然后再对数据进行操作.例如 Path path = Paths.get("file path&qu ...
- Python实现下载文件的三种方法
下面来看看三种方法是如何来下载zip文件的:方法一: import urllib print "downloading with urllib" url = 'http://www ...
- Viewing the interface of your Swift code,查看Swift代码的头文件的三种方法
Technical Q&A QA1914 Viewing the interface of your Swift code Q: How do I view the interface ...
- java将doc文件转换为pdf文件的三种方法
http://feifei.im/archives/93 —————————————————————————————————————————————— 项目要用到doc转pdf的功能,一番google ...
- python下载文件的三种方法
Python开发中时长遇到要下载文件的情况,最常用的方法就是通过Http利用urllib或者urllib2模块. 当然你也可以利用ftplib从ftp站点下载文件.此外Python还提供了另外一种方法 ...
随机推荐
- Winform C# 编程 1
http://b6ec263c.wiz03.com/share/s/2SX2oY0nX4f32CY5ax1bapaL01Wmfc0B-QfB2pS1y13peTbq
- event loop、进程和线程、任务队列
本文原链接:https://cloud.tencent.com/developer/article/1106531 https://cloud.tencent.com/developer/articl ...
- python 基础之for循环有限循环
# range(3) 表示 >>> range(3) [0, 1, 2] for循环 for i in range(3): print(i) 测试 0 1 2 打印1~100的奇数 ...
- CPP-基础:有关调用约定
在C语言中,假设咱们有这样的一个函数:int function(int a,int b) 调历时只有用result = function(1,2)的方法就能利用这个函数.然而,当高档语言被编译成计算机 ...
- cocos2dx lua 吞噬层的触摸事件
首先要创建一个layer,设置该层为可触摸 layer:setTouchEnabled(true) 注册触摸事件 local listener = cc.EventListenerTouchOneBy ...
- 重装vs2008遇到的问题
由于前几天办公室电脑dhcp服务挂了,wifi网线都上不了网,很无奈只能重装了系统.于是VS2008也要重装,之前一直用的都是前一个同事留下来的软件,没自己装过,自己装的时候踩了坑,记录一下. 重装了 ...
- json_decode()和json_encode()区别----2015-0929
json_decode对JSON格式的字符串进行编码而json_encode对变量进行 JSON 编码,需要的朋友可以参考下 1.json_decode() json_decode (PHP 5 ...
- 学习笔记(五): Feature Crosses
目录 Feature Crosses Encoding Nonlinearity Kinds of feature crosses Glossay Crossing One-Hot Vectors P ...
- vector总结(更新中。。。)
vector中这两个属性很容易弄混淆. size是当前vector容器真实占用的大小,也就是容器当前拥有多少个容器. capacity是指在发生realloc前能允许的最大元素数,即预分配的内存空间. ...
- 2018 noip 提高组初赛参考答案
这里有pdf文件:戳这儿