phpでフォームから入力されたファイルからデータを一バイトずつ取得する方法

この記事がお役に立てたならシェアしてくれると嬉しいです。

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の内容が全て入っている仕組みになります。

次は一行ずつ取得する方法を紹介します。

スポンサーリンク

この記事がお役に立てたならシェアしてくれると嬉しいです。


最新記事の更新情報をお届けします。

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)