ファイルの処理、読み込み、書き込みなど

更新:

ファイルの処理、読み込み、書き込みなど。

ファイルの存在、ファイルがあるかないか
if(file_exists($filename)){
}


ファイルサイズ
$fsize = filesize($filename);


行末の改行コードを削除、空白文字を取り除く
・\r、\n、\t、空白、\0などを取り除く
	$data = chop($data);
	Perlのchopではなくchompに近い


ファイルを開く、ファイルを閉じる
・ファイルを開く
	fopen(ファイルのパス, オプション);
	・オプション
		r:読み込み
		w:書き込み
		a:追加書き込み
		r+:読み込みおよび書き込み
		w+:書き込みおよび読み込み
		a+:追加書き込みおよび読み込み
		t:テキストモード
		b:バイナリモード
		w,w+,a,a+は、ファイルが存在しない場合はファイルを自動的に作成する
	・bやtは、rやwと併用する
		fopen(ファイルのパス, br);
・例
	$fpid = fopen($filename, "r");
	flock($fpid, LOCK_EX);
	
	while($rows = fgets($fpid)){
		$row = explode("\t", chop($rows));
		$category_num = $row[0];
	}
	
	flock($fpid, LOCK_UN);
	fclose($fpid);


ファイルを読み込む
file()を使ってファイルを読み込むと、ファイル内の各行が配列に入っている。

$filepath = './test.dat';
$filedata = file($filepath);
print_r($filedata);

1行目:$filedata[0]
2行目:$filedata[1]
というようになる。
読み込むだけならfopen()より便利。


ファイルのロック、アンロック
・ロック
	flock($fpid, LOCK_EX);
・アンロック
	flock($fpid, LOCK_UN);


ファイルをコピー
copy(元のファイルパス, コピー先のファイルパス);
copy($filename_tmp, $filename);


ファイル名を変更
rename(変更前のファイルパス, 変更後のファイルパス);
rename($filename_tmp, $filename);


ファイルを削除
unlink(ファイルパス);
unlink($filename);


画像出力
$filename = "sample.jpg";
header("Content-type: image/jpeg");
header("Content-Length: " . filesize($filename));
$fp = fopen($filename, "rb") or die();
print fread($fp, filesize($filename));
fclose($fp);
このエントリーをはてなブックマークに追加