ファイルデータ読み込み:fgetcsv
■ファイル操作関連の主な関数
    作成:2011.12.5/2015.9.10修正 yoshi
関数 処理機能 備考(利用方法他)
【ディレクトリ関連】
mkdir ディレクトリを作成 mkdir($folder,0755);
rmdir ディレクトリを削除 rmdir('examples');
getcwd 現在のワーキングディレクトリを取得(絶対パスでget可能) echo getcwd();
chdir 現在のディレクトリを変更 chdir('public_html');
opendir ディレクトリのオープン opendir($dir);
readdir ディレクトリの内容を読み込む while ($file = readdir($dh)) { … }
closedir ディレクトリのクローズ closedir($dh);
scandir ディレクトリの内容を読み取る $files = scandir($dir);
chroot ルートディレクトリを変更する chroot("/path/to/your/chroot/");
【ファイル情報取得関連】
realpath 絶対パス名を取得(成功した場合は正規化した絶対パス名を返す) echo realpath('/windows/system32');
dirname パスからディレクトリ名を切り出す dirname('c:/x'); // 'c:\' を返します
basename パスの最後にある名前の部分を返す $filename=basename("/etc/sudoers.gif");
stat ファイル情報をまとめて取得(mode,dev,size,atime,mtime他) $stat = stat('C:\php\php.exe'); echo '更新日時: ' . $stat['mtime'];"
file* ファイル情報を個別に取得→*は、(node,perms,owner,size,mtime,type他) filetype('/etc/passwd'); //ファイルタイプ
file_exists ファイルが存在するかどうかのチェック if( file_exits($filename) ){ … }
touch ファイルの最終アクセス時刻および最終更新日をセット(存在しないファイルの時は、空ファイル出力) touch($filename,$time); $timeを省略すると現在の時刻
is_dir ファイルがディレクトリかどうかを調べる(ファイルが存在して、かつそれがディレクトリであれば TRUE、それ以外の場合は FALSE を返します。) //一つ上のディレクトリ(true) var_dump(is_dir('..'));
is_file 通常ファイルかどうかを調べる(ファイルが存在し、かつそれが通常のファイルである場合に TRUE、 それ以外の場合に FALSE を返します。) var_dump(is_file('a_file.txt')); //true
【ファイル関連】
unlink ファイルを削除 unlink($filename);
glob shellパターンにマッチするファイルを検索して、配列で返す foreach (glob("*.txt") as $filename) { … }
copy ファイルのコピー copy($org_filename,$copy_filename);
rename ファイル名の変更 rename($before_filename,$after_filename);
readfile ファイルをすべて読みとり、標準出力に出力 readfile($file);
fopen ファイルのオープン(バイナリーモードでの書き込みは、「b」を付加)) $fh = fopen($filename,"r");
fclose ファイルのクローズ fclose($fh);
flock 開かれているファイルをロック制御(LOCK_EX,LOCK_UN,LOCK_SH) flock(ファイルハンドル,ロック方法); flock($fh,LOCK_EX);
fgets 開かれているファイルの1行読み取り(文字列として、1行の改行文字が含まれる) $data = fgets($fh);
fputs ファイルの書き込み(fwriteと同じ働き) fputs($fh,$data);
fread バイナリーで画像ファイル読み取り(fopenモードで「b」の指定) $data = fread($fh, filesize($filename));
fwrite 開かれているファイルに書き込み(文字列として) if (fwrite($fh, $data) === FALSE) { … }
fgetcsv CSVファイルを読み取り(配列データとして読み込み) while (($data = fgetcsv($fh, 1000, ",")) !== FALSE) { … }"
fputcsv CSVファイルを書き込み(配列データとして書き込み)デリミタの付加可能(tab:\tなど) fputcsv($fh, $fields,"\t");
feof ファイルの終端(EOF)かをチェック while( !feof($fh) ){ … }
file ファイル全体を読み込んで配列に格納する $lines = file('http://exm.jp/');
file_get_contents ファイルの内容を全て文字列に読み込む $page = file_get_contents('http://.exm.jp/');
file_put_contents 文字列をファイルに書き込む(バイナリデータに対応) fopen()、fwrite()、 fclose() を続けてコールしてデータをファイルに書き込むのと等価" file_put_contents($filename,$item);
【その他付加情報】
@ @は、エラー制御演算子で、式の前につけるとその式でのエラーメッセージを無視する $fh = @fopen($filename,"r");
r [ファイルモード] 読み込みのみ  
r+ [ファイルモード] 読み込みして、書き込み  
w [ファイルモード] 書き込みのみ(ファイルがない場合は、作成)  
w+ [ファイルモード] 読み込み/書き込みのみ(ファイルがない場合は、作成)  
a [ファイルモード] 追加書き込みのみ  
a+ [ファイルモード] 読み込み/追加書き込みのみ(ファイルがない場合は、作成)  
x [ファイルモード] 書き込みのみ(ファイルの先頭のファイルポインタから)ファイルが既に存在する場合は、エラーとなる  
x+ [ファイルモード] 読み込み/書き込みのみで、他は'x'モードの振る舞い  
c [ファイルモード] 書き込みのみで、ファイルが存在しない場合には新規作成(PHP5.2.6以降)  
c+ [ファイルモード] 読み込み/書き込みのみで、他は'c'モードの振る舞い(PHP5.2.6以降)  
b ファイルをオープンするとき、バイナリーモードで処理する指定で、入出力モードと一緒に指定。 $fh = fopen($filename,"wb");
LOCK_SH [ロック定数] 共有ロック … 読み込みは可能で、解放されるまで書き込み不可  
LOCK_EX [ロック定数] 排他ロック … 解放されるまで、読み込み/書き込み不可  
LOCK_UN [ロック定数] ロック解除 … ロック状態の解放