$handle = fopen ("sample.txt", "r"); flock ($handle, LOCK_SH); while (!feof ($handle)) { $str = fgets($handle, 10240); print $str; } flock ($handle, LOCK_UN); fclose ($handle);
$ary = file ("sample.txt"); foreach ($ary as $str) { print $str; }
$handle = fopen ("sample.txt", "w"); flock ($handle, LOCK_EX); fputs ($handle, $str); flock ($handle, LOCK_UN); fclose ($handle);
ファイルハンドル = fopen (パス , "モード")
$handle = fopen ("./sample.txt", "w"); $handle = fopen ("http://www.yahoo.co.jp/", "r");
mode | 説明 | ファイルポインタの位置 | ファイルが無い場合 | 補足 |
---|---|---|---|---|
r | 読みこみ | ファイルの先頭 | ||
r+ | 読みこみ・書きこみ | ファイルの先頭 | ||
w | 書きこみ | ファイルの先頭 | 作成 | ファイルサイズをゼロにします |
w+ | 読みこみ・書きこみ | ファイルの先頭 | 作成 | ファイルサイズをゼロにします |
a | 書きこみ | ファイルの終端 | 作成 | |
a+ | 読みこみ・書きこみ | ファイルの終端 | 作成 |
bool fclose( ファイルハンドル )
成功した場合に TRUE 、失敗した場合に FALSE を返します。
fclose($handle);
bool flock ( resource handle, int operation [, int &wouldblock])
成功した場合に TRUE 、失敗した場合に FALSE を返します。
例 | 説明 |
---|---|
flock($handle,LOCK_SH) | 共有ロック(読み) |
flock($handle,LOCK_EX) | 排他的ロック(書き) |
flock($handle,LOCK_UN) | ロック開放 |
bool feof ( resource handle)
ファイルポインタがEOFに達しているかまたはエラーの場合に TRUE 、その他の場合に FALSE を返します。
bool rewind ( resource handle)
成功した場合に TRUE 、失敗した場合に FALSE を返します。
int ftell ( resource handle)
成功すると0を返し、そうでなければ-1を返します。
int fseek ( resource handle, int offset [, int whence])
成功するとファイルポインタの位置を返し、エラーが起こった場合 FALSE を返します。
array file ( string filename [, int use_include_path [, resource context]])
成功すると配列で(改行記号はついたまま)返します。失敗すると FALSE を返します。
$ary1 = file ("./sample.txt"); //HTTPを通してURL上のHTMLソースも可 $ary2 = file ("http://www.sample.com/");
string fgets ( resource handle [, int length])
ファイルポインタから最大length-1バイト読み出し(length省略時は1024バイト)返します。エラーの場合 FALSE を返します。
$str = fgets($handle, 1024);
(fputsはfwriteのエイリアス)
int fwrite ( resource handle, string string [, int length])
書き込んだバイト数を返します。エラーの場合は FALSE を返します。
fwrite($handle, $str);
int copy ( コピー元ファイルパス , コピー先ファイルパス )
成功した場合に TRUE 、失敗した場合に FALSE を返します。(コピー先のファイルが既に存在する場合、上書きされます。 )
copy("sample.txt", "./backup/sample.txt");
int rename ( 変更元ファイルパス , 変更先ファイルパス )
成功した場合に TRUE 、失敗した場合に FALSE を返します。(変更先のファイルが既に存在する場合、エラーになります。 )
rename("sample.txt", "./backup/sample.txt");
bool unlink ( ファイルパス )
成功した場合に TRUE 、失敗した場合に FALSE を返します。
unlink ("sample.txt");
bool mkdir ( ファイルパス [, モード])
成功した場合に TRUE 、失敗した場合に FALSE を返します。モードを8進数で指定する必要があります。
mkdir ("./dirname", 0777);
bool rmdir ( ファイルパス )
成功した場合に TRUE 、失敗した場合に FALSE を返します。ディレクトリは空である必要があります。
rmdir("./dirname");
int chmod ( ファイルパス , モード)
成功した場合に TRUE 、失敗した場合に FALSE を返します。モードを8進数で指定する必要があります。
chmod ("./sample/sample.txt", 0777);
bool file_exists ( ファイル名 )
存在した場合に TRUE 、それ以外に FALSE を返します。
if (file_exists($filename)) { print $filename."は存在します。"; } else { print $filename."は存在しません。"; }
dirname(ディレクトリ名)、basename(ファイル名)、extension(拡張子)の連想配列を返します。
$filename = "/data/sample.txt"; print_r( pathinfo($filename));
Array ( [dirname] => /data [basename] => sample.txt [extension] => txt )
時間はUNIXタイムスタンプとして返されます。
print "最終アクセス日時 ".date("Y年m月d日 H時i分s秒", filemtime($filename));
時間はUNIXタイムスタンプとして返されます。
print "最終更新日時 ".date("Y年m月d日 H時i分s秒", filemtime($filename));
print "ファイルサイズ ".filesize($filename);
ファイルが存在し、条件にあてはまると TRUE を返し、それ以外は FALSE を返します。
例 | 説明 |
---|---|
is_file($file) | 通常ファイルかどうか |
is_dir($file) | ファイルがディレクトリかどうか |
is_readable($file) | ファイルが読み込み可能かどうか |
is_writable($file) | ファイルが書き込み可能かどうか |
is_writeable($file) | is_writable()のエイリアス |
is_uploaded_file($file) | HTTP POSTによりアップロードされたファイルかどうか |
bool chdir (ディレクトリパス)
成功した場合に TRUE 、失敗した場合に FALSE を返します。
chdir ("/sample/dir");
カレントディレクトリを返します。
print "カレントディレクトリ ".getcwd ();
$dir = getcwd(); if (is_dir($dir)) { if ($handle = opendir($dir)) { while (($file = readdir($handle)) !== false) { print $file."<br />"; } closedir($handle); } }