ホームページ >php教程 >PHP源码 >把內容以array的形式存入php檔案內,使用時直接require即可,該方式可達到高效緩存的目的

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

PHP中文网
PHP中文网オリジナル
2016-05-26 08:18:221134ブラウズ

把內容以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,&#39;Error:&#39;.__LINE__.&#39;,&#39;.basename(__FILE__).&#39; 至少要傳遞一個參數!&#39;);}

	//確保副檔名是.php
	if(substr($o[0],-4)!=&#39;.php&#39;){return array(FALSE,&#39;Error:&#39;.__LINE__.&#39;,&#39;.basename(__FILE__).&#39; 副檔名必須是.php&#39;);}

	$t=&#39;<?PHP&#39;.PHP_EOL.&#39;//該檔案由系統自動產出請勿手工修改&#39;.PHP_EOL;

	//若暫存檔不存在則創建之
	if(!file_exists($o[0])){
		file_put_contents($o[0],$t.&#39;$arr=array();&#39;,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.&#39;$arr=&#39;.var_export($arr,TRUE).&#39;;&#39;;
		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=>&#39;del&#39;,2=>要刪除的索引$key值),把第3個參數所屬的那一行內容刪除
		if(!in_array($o[1],array(&#39;del&#39;,&#39;delall&#39;))){return array(FALSE,&#39;Error:&#39;.__LINE__.&#39;,&#39;.basename(__FILE__).&#39; 參數2錯誤!&#39;);}

		switch($o[1]){
		case &#39;del&#39;:		//把第3個參數所屬的那一行內容刪除
			if(!isset($o[2]) or !is_numeric($o[2])){return array(FALSE,&#39;Error:&#39;.__LINE__.&#39;,&#39;.basename(__FILE__).&#39; 參數3錯誤!&#39;);}

			if(!isset($arr[$o[2]])){return array(TRUE,$arr);} //若要刪除的項目已不存在則直接返回

			unset($arr[$o[2]]);
			$arr=$t.&#39;$arr=&#39;.var_export($arr,TRUE).&#39;;&#39;;
			file_put_contents($o[0],$arr,LOCK_EX);
			chmod($o[0],0777);
			unset($o,$t);
			return array(TRUE,$arr);
		case &#39;delall&#39;:	//全刪
			if(!isset($o[2])){return array(FALSE,&#39;Error:&#39;.__LINE__.&#39;,&#39;.basename(__FILE__).&#39; 參數3錯誤!&#39;);}

			$arr=$t.&#39;$arr=array();&#39;;
			file_put_contents($o[0],$arr,LOCK_EX);
			chmod($o[0],0777);
			unset($o,$t);
			return array(TRUE,array());
		}
		throw new exception(&#39;Error:&#39;.__LINE__.&#39;,&#39;.basename(__FILE__).&#39;!&#39;);die();
	default:
		unset($o,$t);
		return array(FALSE,&#39;Error:&#39;.__LINE__.&#39;,&#39;.basename(__FILE__).&#39; 參數個數錯誤!&#39;);
	}
	unset($o,$t);
	throw new exception(&#39;Error:&#39;.__LINE__.&#39;,&#39;.basename(__FILE__).&#39;!&#39;);die();
}

以上就是把內容以array的形式存入php檔案內,使用時直接require即可,該方式可達到高效緩存的目的的内容,更多相关内容请关注PHP中文网(www.php.cn)!

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。