| ■ファイル操作関連の主な関数 | ||
| 関数 | 処理機能 | 備考(利用方法他) |
| 【ディレクトリ関連】 | ||
| 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 | [ロック定数] ロック解除 … ロック状態の解放 | |