そのまま使えるPHPプログラムの関数 



当ホームページでは、PHPプログラムを記述する際に、コードを全て1から書くのも面倒な為、よく使う関数をまとめてみました。そのまま関数を使えるようにしていますので、必要な関数を呼び出すだけで使えると思います。適当な関数があればご自由にお使い下さい。
▼スポンサードリンク
◆メニュー

▼スポンサードリンク


◆数値

◆掲示板

◆ログ

◆ファイル操作

◆文字列

◆HTML

◆アクセス解析

◆データベース

◆カレンダー

◆解析

◆WEBページをTEXTへ



A71214 T57 Y49

(C)あいねこの館(aineko's YAKATA)
◇【関数】ファイル操作を行う
String file_mode("対象ファイル","ファイルモード","書き込みデータ")

【内容】
対象ファイル:ファイルの入出力を実行するファイルパス
ファイルモード:r,r+⇒リード、w,w+⇒書き込み、
         a,a+⇒追加書き込み(ファイルの後ろに書き込む)
         aa,aa+⇒追加書き込み(ファイルの前に書き込む)
書き込むデータ:ファイルモードがw系、a系の場合のみ有効
【戻り値】
ファイルモードa系,w系は成功した場合は1、rは対象ファイルの内容

◇【関数の内容】
▼スポンサードリンク

function file_mode($file_path,$file_mode,$write_data){

	//最後の出力結果
	$data = "";

	//ファイルを読み込む場合
	if($file_mode=="r" || $file_mode=="r+"){
		
		//ファイルが存在するか調べる
		if(file_exists($file_path)){
			$data = file_get_contents($file_path);
		}
		else{
			$data = "読み込むファイルが存在しません。";
		}
	}
	//ファイルを書き込む場合
	elseif($file_mode=="w" || $file_mode=="w+"){

		$fp = fopen($file_path,$file_mode);

		if (!$fp) {
			$data= "ファイルポインタのオープンに失敗しました。";
		}
		if (!flock($fp,2)) {
			$data = "ファイルロックに失敗しました。";
		}
		if (!fputs($fp,$write_data)) {
			$data = "書き込みに失敗しました。";
		}
		if (!flock($fp,3)) {
			$data = "ファイルロックの解放に失敗しました。";
		}

		//ファイルに正常に書きこめた場合の戻り値を1にする
		if($data==""){
			$data = 1;
		}

		fclose($fp);

	}
	//ファイルモードがa系の場合
	elseif($file_mode=="a" || $file_mode=="a+" || $file_mode=="aa" || $file_mode=="aa+"){


		//ファイルの最後に書き込む場合
		if($file_mode=="a" || $file_mode=="a+"){

			$fp = fopen($file_path,$file_mode);

			if (!$fp) {
				$data= "ファイルポインタのオープンに失敗しました。";
			}
			if (!flock($fp,2)) {
				$data = "ファイルロックに失敗しました。";
			}

			if (!fputs($fp,$write_data)) {
				$data = "書き込みに失敗しました。";
			}
			if (!flock($fp,3)) {
				$data = "ファイルロックの解放に失敗しました。";
			}

			fclose($fp);

		}
		//ファイルの最後に書き込む場合
		else{
			
			if(file_exists($file_path)){
				//ファイルの内容を読みこんでおく
				$data = file_get_contents($file_path);
			}

			//書き込む内容を戦闘にする
			$write_data = $write_data . $data;

			$fp = fopen($file_path,"w");

			if (!fputs($fp,$write_data)) {
				$data = "書き込みに失敗しました。";
			}
			if (!flock($fp,3)) {
				$data = "ファイルロックの解放に失敗しました。";
			}

			fclose($fp);

			$data = 1;

		}

		if($data==""){
			$data = 1;
		}

	}
	else{
		$data = "ファイルモードが不正です。";
	}

	return $data;

}
▼スポンサードリンク

◇【サンプルプログラム】
test.txtはtestdataと記載。

【ファイルの内容を取得する場合】
$file_path = "test.txt";
$file_mode = "r";
$write_data = "";
$result = file_mode($file_path,$file_mode,$write_data);
print $result;

【ファイルの内容を取得する場合】
$file_path = "test.txt";
$file_mode = "aa";
$write_data = "test2";
$result = file_mode($file_path,$file_mode,$write_data);
print $result;

◇【実行結果】
【ファイルの内容を取得する場合】
testdata

【ファイルの内容を取得する場合】
test2
testdata

◇【解説】
特にありません。