CodeLog

ファイルの書き込み・読み込み・存在判定・コピー・削除

PHPでファイル操作(書き込み・読み込み・存在判定・コピー・削除)をおこなう方法を解説します。データファイルなどを操作する場合などに役に立ちます。

書き込み

if(!file_put_contents("./file.txt", "書き込む内容", LOCK_EX)){
	//ファイルの書き込みに失敗
}

ファイルを書き込む場合、file_put_contents関数を使用します。引数の1番目が書き込むファイル(パス)、2番目が書き込む文字列、3番目がオプションです。

オプション(複数指定する場合は"|"で区切る)

FILE_USE_INCLUDE_PATH
ファイルをインクルードディレクトリから参照
FILE_APPEND
ファイルを追記
LOCK_EX
書き込み中はロックをかける

file_put_contents関数はファイルがなければ作成し、既にあれば上書きします。ただし、オプションでFILE_APPENDが指定されている場合は、上書きせずに追記をおこないます。

返り値は書き込みが正常終了した場合は書き込んだバイト数を返し、失敗した場合はfalseを返します。なので返り値を判定すれば書き込みの成功・失敗を判断できます。

読み込み

一括読み込み

$f = file_get_contents("./file.txt");

ファイルを一括して読み込む場合は、file_get_contents関数を使用します。ファイルの内容をすべて一括して読み込みます。引数はファイルパスです。

読み込んで1行ごとに配列に格納

$f = file("./file.txt", FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES);

ファイルを読み込んで1行ごとに配列する場合は、file関数を使用します。引数の1番目はファイルパス、2番目はオプション(省略可)です。

オプション(複数指定する場合は"|"で区切る)

FILE_USE_INCLUDE_PATH
ファイルをインクルードディレクトリから参照
FILE_IGNORE_NEW_LINES
改行を省略して配列に格納
FILE_SKIP_EMPTY_LINES
空行を配列に格納しない

読み込みに失敗した場合はfalseを返します。

存在判定

if(file_exists("./file.txt")){
	//ファイルが存在している場合の処理
}

ファイルの存在を判定する場合、file_exists関数を使用します。ファイルが存在していればtrue、存在しなければfalseを返します。

コピー

if(!copy("./file.txt", "./file_copy.txt")){
	//コピーに失敗
}

ファイルをコピーする場合、copy関数を使用します。コピーするファイルがすでにある場合は上書きされるため注意してください。コピーが成功すればtrue、失敗すればfalseを返します。

削除

if(!unlink("./file.txt")){
	//削除に失敗
}

ファイルを削除する場合、unlink関数を使用します。ファイルが削除できた場合はtrueを返し、削除ファイルは存在しない場合や削除に失敗した場合にはfalseを返します。