把php代码保存到php文件实现方法

<?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 "<?phpn"; 

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('http://www.hzhuti.com')); 

cacheArr($hello); 

unset($hello); 

//读取数组 

require 'hello.arr.php'; 

print_r($hello); 

?>

 

你可能感兴趣的:(PHP)