把內容以array的形式存入php檔案內,使用時直接require即可,該方式可達到高效緩存的目的
程序员文章站
2022-05-19 18:27:15
...
把內容以array的形式存入php檔案內,使用時直接require即可,該方式可達到高效緩存的目的
/** 把內容以array的形式存入php檔案內,使用時直接require即可,該方式可達到高效緩存的目的 獲取內容(1個參數): 参数: [0]:str型,PHP的路徑和檔案名的組合,如:Run.'_tip/_'.$uid.'.php' 說明: 返回php檔案內的array 用法: $x=Fun::PHP(Run.'_tip/_'.$uid.'.php'); 返回: array( 0=>bool型,是否執行成功 1=>若執行失敗則返回str型的錯誤消息,成功則返回array ) 新增內容(2個參數): 参数: [0]:str型,PHP的路徑和檔案名的組合,如:Run.'_tip/_'.$uid.'.php' [1]:未知,要新增的內容 說明: 把第2個參數的內容追加到$arr的尾巴上 用法: $x=Fun::PHP(Run.'_tip/_'.$uid.'.php',$arr); 返回: array( 0=>bool型,是否執行成功 1=>若執行失敗則返回str型的錯誤消息,成功則返回array ) 刪除內容(3個參數): 参数: [0]:str型,PHP的路徑和檔案名的組合,如:Run.'_tip/_'.$uid.'.php' [1]:str型,['del':只刪除參數[2]對應的一行;'delall':全刪] [2]:int型,要刪除的索引$key值 說明: 把第3個參數所屬的那一行內容刪除或全刪(要看[1]的值而定) 用法: $x=Fun::PHP(Run.'_tip/_'.$uid.'.php','del',$key); Fun::PHP(Run.'_tip/_'.$uid.'.php','delall',''); 返回: array( 0=>bool型,是否執行成功 1=>若執行失敗則返回str型的錯誤消息,成功則返回array ) /**/ public static function PHP(){ $o=func_get_args(); $c=count($o); if($c<1){return array(FALSE,'Error:'.__LINE__.','.basename(__FILE__).' 至少要傳遞一個參數!');} //確保副檔名是.php if(substr($o[0],-4)!='.php'){return array(FALSE,'Error:'.__LINE__.','.basename(__FILE__).' 副檔名必須是.php');} $t='<?PHP'.PHP_EOL.'//該檔案由系統自動產出請勿手工修改'.PHP_EOL; //若暫存檔不存在則創建之 if(!file_exists($o[0])){ file_put_contents($o[0],$t.'$arr=array();',LOCK_EX); chmod($o[0],0777); } require($o[0]); $arr=(!is_array($arr)) ? array() : $arr; switch($c){ case 1: //傳遞了1個參數(0=>php檔案名),返回php檔案內的array return array(TRUE,$arr); case 2: //傳遞了2個參數(0=>php檔案名,1=>要新增的內容),把第2個參數的內容追加到$arr的尾巴上 $arr[]=$o[1]; $arr=$t.'$arr='.var_export($arr,TRUE).';'; file_put_contents($o[0],$arr,LOCK_EX); chmod($o[0],0777); unset($o,$t); return array(TRUE,$arr); case 3: //傳遞了3個參數(0=>php檔案名,1=>'del',2=>要刪除的索引$key值),把第3個參數所屬的那一行內容刪除 if(!in_array($o[1],array('del','delall'))){return array(FALSE,'Error:'.__LINE__.','.basename(__FILE__).' 參數2錯誤!');} switch($o[1]){ case 'del': //把第3個參數所屬的那一行內容刪除 if(!isset($o[2]) or !is_numeric($o[2])){return array(FALSE,'Error:'.__LINE__.','.basename(__FILE__).' 參數3錯誤!');} if(!isset($arr[$o[2]])){return array(TRUE,$arr);} //若要刪除的項目已不存在則直接返回 unset($arr[$o[2]]); $arr=$t.'$arr='.var_export($arr,TRUE).';'; file_put_contents($o[0],$arr,LOCK_EX); chmod($o[0],0777); unset($o,$t); return array(TRUE,$arr); case 'delall': //全刪 if(!isset($o[2])){return array(FALSE,'Error:'.__LINE__.','.basename(__FILE__).' 參數3錯誤!');} $arr=$t.'$arr=array();'; file_put_contents($o[0],$arr,LOCK_EX); chmod($o[0],0777); unset($o,$t); return array(TRUE,array()); } throw new exception('Error:'.__LINE__.','.basename(__FILE__).'!');die(); default: unset($o,$t); return array(FALSE,'Error:'.__LINE__.','.basename(__FILE__).' 參數個數錯誤!'); } unset($o,$t); throw new exception('Error:'.__LINE__.','.basename(__FILE__).'!');die(); }
以上就是把內容以array的形式存入php檔案內,使用時直接require即可,該方式可達到高效緩存的目的的内容,更多相关内容请关注PHP中文网(www.php.cn)!
下一篇: php第三方定时触发脚本有哪些方案