第一次分享代碼;(寫得很爛..緊張納緊張納)
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\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;
}
?>
<?php
//存儲數組
$hello=array(1=>'test',2=>array('hello123'));
cacheArr($hello);
unset($hello);
//讀取數組
require 'hello.arr.php';
print_r($hello);
?>
測試的時候注意下變量問題。包括定義的全局變量