php数组存到文件的实现代码

php的数组十分强大,有些数据不存入数据库直接写到文件上,用的时候直接require
第一次分享代码;(写得很烂..紧张纳紧张纳)
php的数组十分强大,有些数据不存入数据库直接写到文件上,用的时候直接require。
(实际中有用到把数组存在到文件中的功能,不过分享的代码跟实际应用中的有点不同)
代码1:

<?php
//数组转存为文件
//by www.jbxue.com
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 www.jbxue.com
require 'hello.arr.php'; print_r($hello); ?>

测试的时候注意下变量问题。包括定义的全局变量。

你可能感兴趣的:(PHP)