第一次分享代码;(写得很烂..紧张纳紧张纳)
php的数组十分强大,有些数据不存入数据库直接写到文件上,用的时候直接require。
(实际中有用到把数组存在到文件中的功能,不过分享的代码跟实际应用中的有点不同)
复制代码 代码如下:
<?php
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";
function echoArr($arr,$arrName){
$arrCount=count($arr);$i==0;
foreach($arr as $key=>$value){
++$i;
if(is_array($value)){
echo "".(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 "?>";
$file=fopen($strName.".arr.php","w");
fwrite($file,ob_get_contents());
fclose($file);
ob_clean();
return true;
}
?>
<?php
//存储数组
$hello=array(1=>"test",2=>array("hello123"));
cacheArr($hello);
unset($hello);
//读取数组
require "hello.arr.php";
print_r($hello);
?>

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