Many times we need to save the PHP code generated by PHP into the PHP file. For example, if the cache is used, some basic data will be directly saved to a specified PHP cache file. Let's take a look at an example.
代码如下 | 复制代码 |
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 " 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; } ?> |
Example
The code is as follows
|
Copy code | ||||
http: //www.bkjia.com/PHPjc/631651.html