PHP – ファイル入出力 その3

fopen、fclose、fgets、fwrite、die以外のファイル入出力関連関数の中で、よく使う関数には以下のようなものがあります。

☆ file関数
$line = file("./test.dat");

上記のように記述することで、ファイルの内容を一行毎に配列として$lineに格納します。
また、以下のようにすることにより、Webページのデータも取得する事ができます。
$line = file("http://www.example.com/");

☆ fread関数
if($filehandle = @fopen("./test.dat", 'r')){
$buffer = fread($filehandle,1024);
fclose($filehandle);
}

freadではバイナリモードでファイルを読み込みます。第一引数がファイルハンドル、第二引数で読み込むサイズを指定します。つまり上記の例では、『test.dat』から1024バイトを読み込み$bufferに格納します。バイナリモードなので、もちろん改行コードなどは関係無く、一つの文字列として読み込む事になります。
上記の例の中の『1024』という部分に、『filesize(“./test.dat”)』という記述を加えることで、ファイルの内容全てを読み込みます。filesize関数は後述致します。

☆ filesize関数
$size = filesize("./test.dat");

上記のように記述することで、ファイルサイズをバイト単位で取得し、$sizeに格納します。
非常に単純な機能ですが、ファイルのチェックなどによく使用します。

☆ file_exists関数
$bool = file_exists("./test.dat");

上記例では、ファイルが存在すればTrue、存在しなければFalseを取得し、$boolに格納します。
filesize関数と共にファイルチェックなどによく使用しますが、こちらの関数はサイズが0でも存在さえすればTrueを返します。そのため、この関数を使用することで『ファイルが存在する→ファイルサイズ0のファイルを読み込もうとする→エラー』みたいな流れになってしまう事が稀にあるので、注意が必要です。

・・・と書いていますが、ファイル入出力関数は非常に多く、一度では書ききれないので、少しずつ記述していきます。気長にお待ち下さい。(勝手ですみません。)

※ちなみにこの記事は過去に別ブログで掲載していたものを若干加筆修正したものです。

スポンサードリンク

twitterまたはFacebookでもコメントして頂けます