バックアップファイル

| コメント(0) | トラックバック(0)

書き込みに常に2つのファイルに書き込んでおき
開くときにファイルサイズの大きい方を開く。
バックアップがないときも下記で新たに作られる。

function READLIST($readFile){
	$readFile=fGETBAK($readFile);
	if(file_exists($readFile)){
		$LIST=file($readFile);
	}
	$LIST=array_map('trim',$LIST);
	return $LIST;
}

#★★★★★★★★★★★★★★★★★★★★★#
#★★★	バックアップファイル名をGET	★★★#
#★★★★★★★★★★★★★★★★★★★★★#
function fGETBAK($file){
	$filebak=$file.".bak";
	#####比較###########
	if(file_exists($filebak)){
		$baksize=filesize($filebak);
	}else{
		$baksize=0;
	}
	if(file_exists($file)){
		$fsize=filesize($file);
	}else{
		$fsize=0;
	}
	if($baksize>$fsize){
		#要領が大きいほうを小さい方にコピーする。
		copy($filebak,$file);
		chmod($file,0766);
		$refile=$filebak;
	}elseif($baksize<$fsize){
		copy($file,$filebak);
		chmod($filebak,0766);
		$refile=$file;
	}
	return $refile;
}

#★★★★★★★★★★★★★★★★★★★★★#
#★★★	バックアップファイルにも書き込み	★★★#
#★★★★★★★★★★★★★★★★★★★★★#
function fWRITEBAK($file,$wStr){
	if(file_exists($file)){
		$fp=fopen($file,"w");#書き込み	fpはfileの先頭
	}
	if($fp){
		flock($fp,LOCK_EX);
		fwrite($fp,$wStr);
		flock($fp,LOCK_UN);#ファイルを閉じる前に実行。
		fclose($fp);
	}
	#さらにバックアップもしておく。
	if(file_exists($file.".bak")){
		$fp=fopen($file.".bak","w");#書き込み	fpはfileの先頭
	}
	if($fp){
		flock($fp,LOCK_EX);
		fwrite($fp,$wStr);
		flock($fp,LOCK_UN);#ファイルを閉じる前に実行。
		fclose($fp);
	}
}

トラックバック(0)

トラックバックURL: http://www.adg7.com/mt/mt-tb.cgi/342

コメントする

エントリー一覧

このブログ記事について

このページは、たけうちとおるが2009年6月16日 12:47に書いたブログ記事です。

ひとつ前のブログ記事は「ディレクトリかどうか調べる」です。

次のブログ記事は「ファイルが存在するか」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

OpenID対応しています OpenIDについて