当前位置 : 主页 > 网络编程 > PHP >

把內容以array的形式存入php檔案內,使用時直接require即可,該方式可達到高效緩存

来源:互联网 收集:自由互联 发布时间:2021-06-30
把內容以array的形式存入php檔案內,使用時直接require即可,該方式可達到高效緩存的目的 獲取內容(1個參數): 参数: [0]:str型,PHP的路徑和檔案名的組合,如:Run.'_tip/_'.$uid.'.php' 說明: 返回php檔
把內容以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
    )

1. [代码][PHP]代码    

/**
	把內容以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();
}
网友评论