php数组存到文件的实现代码
php的数组十分强大,有些数据不存入数据库直接写到文件上,用的时候直接require
第一次分享代码;
(实际中有用到把数组存在到文件中的功能,不过分享的代码跟实际应用中的有点不同)
代码1:
<?php
//数组转存为文件
//by
function cacheArr(&$data){
if(!$data)throw new Exception('数组不能为空');
foreach($GLOBALS as $key=>$value){
$str=$GLOBALS[$key];
$GLOBALS[$key]='changed';
if($data=='changed'){
$strName=$key;
break;
}
$GLOBALS[$key]=$str;
}
ob_clean();
ob_start();
echo "<?php\n";
function echoArr($arr,$arrName){
$arrCount=count($arr);$i==0;
foreach($arr as $key=>$value){
++$i;
if(is_array($value)){
echo "\n".(is_numeric($key)?$key:'\''.$key.'\'')。'=>array(';
echoArr($value,$arrName.(is_numeric($key)?'['.$key.']':'[\''.$key.'\']'));
if($i!=$arrCount)echo '),';
else echo ')';
continue;
}
if($i!=$arrCount)echo ((is_numeric($key))?$key:'\''.$key.'\'')。'=>'.(is_numeric($value)?$value:'\''.$value.'\'')。',';
else echo ((is_numeric($key))?$key:'\''.$key.'\'')。'=>'.(is_numeric($value)?$value:'\''.$value.'\'');
}
}
echo '$'.$strName.'=array(';
echoArr($data,'');
echo ');';
echo "\n?>";
$file=fopen($strName.'.arr.php','w');
fwrite($file,ob_get_contents());
fclose($file);
ob_clean();
return true;
}
?>
代码2:
<?php
//存储数组
$hello=array(1=>'test',2=>array('hello123'));
cacheArr($hello);
unset($hello);
//读取数组
//by
require 'hello.arr.php';
print_r($hello);
?>
测试的时候注意下变量问题。包括定义的全局变量 www.tfjy386.com
php数组存到文件的实现代码的更多相关文章
- 利用Apply的参数数组化来提高代码的优雅性,及高效性
利用Apply的参数数组化来提高代码的优雅性,及高效性 Function.apply()在提升程序性能方面的技巧 我们先从Math.max()函数说起,Math.max后面可以接任意个参数,最后返回所 ...
- (016)给定一个有序数组(递增),敲代码构建一棵具有最小高度的二叉树(keep it up)
给定一个有序数组(递增),敲代码构建一棵具有最小高度的二叉树. 因为数组是递增有序的.每次都在中间创建结点,类似二分查找的方法来间最小树. struct TreeNode { int data; Tr ...
- php 数组动态添加实现代码(最土团购系统的价格排序)
最近在实现最土团购系统的价格排序功能,需要对$oc数组进行扩展,经过测试用下面的方法即可. 核心代码如下: <?php $now=time(); $oc = array( 'team_type' ...
- 让Eclipse不格式化数组或某段代码
用过eclipse ctrl+shit+f的人肯定都感觉eclipse这个功能很爽. 但对于数组,有时候就不是这样了. 比如在opengl中定义一些顶点信息: int one = 0x010000; ...
- php数组去重的函数代码
php中数组去重的小例子. 代码如下: <?php /** * 数组去重复的小函数 * by www.jbxue.com */ function assoc_unique($arr ...
- swift2.0 字符串,数组,字典学习代码
swift 2.0 改变了一些地方,让swift变得更加完善,这里是一些最基本的初学者的代码,里面涉及到swift学习的最基本的字符串,数组,字典和相关的操作.好了直接看代码吧. class View ...
- java数组随机排序实现代码
例一 代码如下 复制代码 import java.lang.Math;import java.util.Scanner;class AarrayReverse{ public static void ...
- 万字长文带你掌握Java数组与排序,代码实现原理都帮你搞明白!
查找元素索引位置 基本查找 根据数组元素找出该元素第一次在数组中出现的索引 public class TestArray1 { public static void main(String[] arg ...
- 后缀数组【原理+python代码】
后缀数组 参考:https://blog.csdn.net/a1035719430/article/details/80217267 https://blog.csdn.net/YxuanwKeith ...
随机推荐
- BZOJ1629: [Usaco2007 Demo]Cow Acrobats
1629: [Usaco2007 Demo]Cow Acrobats Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 601 Solved: 305[Su ...
- Do's and Don'ts for Android development
Do's and Don'ts for Android development, by Futurice developers Use Gradle and its recommended proje ...
- 用Visual Studio创建集成了gtest的命令行工程
gtest代码库中的sample代码 在gtest的代码库中,包含了10个sample的代码,覆盖了gtest的常见用法,sample的代码位于以下文件夹: gtest\samples 由于gtest ...
- 将使用netTcp绑定的WCF服务寄宿到IIS7上全记录 (这文章也不错)
原文地址:http://www.cnblogs.com/wengyuli/archive/2010/11/22/wcf-tcp-host-to-iis.html 摘要 在项目开发中,我们可能会适时的选 ...
- Selenium webdirver 操作浏览器
打开浏览器 HtmlUnit Driver 优点:不会实际打开浏览器,运行速度很快. 缺点:对JavaScript的支持不够好,有时会捕获不到页面元素. 使用:WebDriver driver=new ...
- stm32开发笔记一:使用固件库在RealView-MDK中新建工程(上)
很久没有碰单片机了,两年了吧,因为项目需要,最近入手一块红牛的开发板,核心为STM32F103ZE.虽然以前做过大概半年的stm32的开发,现在天天在.net平台下写代码,已经忘记的差不多,恰逢周末, ...
- win7虚拟机起不来,报错transport vmdb error -44 message the vmware authorization
运行: services.msc 选择:VMware Authorization Service,运行它
- spring3.1的BeanFactory与Quartz1.8整合
spring的applicationContext.xml配置文件: 加入 <bean id="myJob" class="org.springframework. ...
- jquery动态添加元素无法触发绑定事件的解决方案。
jquery动态添加元素无法触发绑定的事件的解决方案. ╭(●`∀´●)╯二狗最近在工作中遇到一个问题,即当用jquery动态添加元素后,发现给动态添加的元素却无法触发事件(╯#-_-)╯╧═╧ ( ...
- Transact-SQL 数据类型转换
Syntax Syntax for CAST: CAST ( expression AS data_type [ ( length ) ] ) Syntax for CONVERT: CO ...