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还提供了另外一种方法 ...
随机推荐
- 巧用伪元素绘制带边的三角形--CSS3
<!doctype html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- ios 利用runtime任性跳转
在开发项目中,会有这样变态的需求: 推送:根据服务端推送过来的数据规则,跳转到对应的控制器 feeds列表:不同类似的cell,可能跳转不同的控制器(嘘!产品经理是这样要求:我也不确定会跳转哪个界面哦 ...
- 获取cell中的button在整个屏幕上的位置
编写cell中得button点击事件 - (IBAction)showButtonClick:(id)sender { UIButton *button = (UIButton *)sender; U ...
- Android笔记--View绘制流程源码分析(二)
Android笔记--View绘制流程源码分析二 通过上一篇View绘制流程源码分析一可以知晓整个绘制流程之前,在activity启动过程中: Window的建立(activit.attach生成), ...
- Elasticsearch-分片原理1
Elasticsearch版本:6.0 Elasticsearch基于Lucene,采用倒排索引写入磁盘,Lucene引入了按段搜索的概念,来动态更新索引. 一个Lucene索引包含一个提交点和三个短 ...
- (转载)WPF:DataGrid设置行、单元格的前景色
WPF:DataGrid设置行.单元格的前景色 0. 说明 /********************************** 本示例实现功能1.DataGrid基本操作2.列标题样式3.内容居中 ...
- 洛谷 P1588 丢失的牛
题目描述 FJ丢失了他的一头牛,他决定追回他的牛.已知FJ和牛在一条直线上,初始位置分别为x和y,假定牛在原地不动.FJ的行走方式很特别:他每一次可以前进一步.后退一步或者直接走到2*x的位置.计算他 ...
- codeforce Gym 100685E Epic Fail of a Genie(MaximumProduction 贪心)
题意:给出一堆元素,求一个子集,使子集的乘积最大,如有多个,应该使子集元素个数尽量小. 题解:贪心,如果有大于1的正数,那么是一定要选的,注意负数也可能凑出大于1的正数,那么将绝对值大于1的负数两两配 ...
- Windows环境下使用Apache+mod
1.安装Python和Apache. 2.安装mod_wsgi后获得wsgi.so,并将wsgi.so放到Apache的modules文件夹下. 3.安装webpy. 4.打开httpd.conf(在 ...
- CPP-基础:新标准 C++iostream
在新的标准 C++ iostream 库中: 1. open 函数不采用第三个参数(保护参数). 2. 无法从文件句柄创建流. 3. 除了几个例外,新的标准 C++ 库中的所有名称都在 std 命名空 ...