fgetcは一バイトずつ取得する関数です。
テキスト内をバイト単位で分割や区切った文字列を取得するのに向いています。
データを一バイトずつ取得する方法
■fgetc(ファイルハンドル);
文字を一文字ずつ取得する関数です。
実行する度にファイルを読む位置が1Byteずつ分移動します。
■feof(ファイルハンドル);
fgetc関数がファイルを読む位置がファイルの途中ではFALSEを返し
終わりになるとTRUEを返します。
例:
<?php
$file=@fopen("test.txt","r");
if(!$file)
{
}
else
{
$text="";
while(!feof($file))
{
$text.=fgetc($file);
}
fclose($file);
print $text;
}
?>
@fopenでファイルハンドル取得した時点でファイルを
読む位置がファイルの先頭になっています。
fgetcは実行する度にファイルを読む位置が終端へ向かって1Byte分ずつ移動していくので
$textにファイルの内容を1Byteずつ入れていきます。
それを利用し、whileループの条件式にfeofを入れファイルの終端へ達っしたと判断するまでfgetcを実行せています。
ループが終了すると$textにtest.txtの内容が全て入っている仕組みになります。
次は一行ずつ取得する方法を紹介します。