fReadとは? わかりやすく解説

fread

(PHP 4, PHP 5)
fread — バイナリ・モードでファイルを読み込む

説明

string fread ( resource handle, int length )
fread()handleが指す ファイルポインタから最高lengthバイト 読み込みます。読み込みは、最高 length バイト分 読み込まれたか、EOF(ファイルの終端)に達した場合、 パケットが利用可能になった場合(ネットワークストリームの場合)、 あるいは(ユーザ定義ストリームをオープンした後で) 8192 バイトが読み込まれた場合のうち、最初に発生した事象により中止されます。
読み込んだ文字列、またはエラー時には FALSE を返します。
<?php
// ファイルの中身を読んで文字列に格納する
$filename = "/usr/local/something.txt";
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));
fclose($handle);
?>


警告
バイナリとテキストファイルの形式が異なるシステム(すなわち Windows)では、fopen()の mode パラメータに 'b' を指定してファイルをオープンする必要があります。

<?php
$filename = "c:\\files\\somepic.gif";
$handle = fopen($filename, "rb");
$contents = fread($handle, filesize($filename));
fclose($handle);
?>


警告
通常のローカルファイル以外のもの、例えば リモートファイルpopen()fsockopen() が返す ストリームを読み込んでいる場合には、 パケットが有効になった後に読み込みはストップします。 つまり以下の例のように分割されたデータを結合すべきであるということです。

<?php
// PHP 5 以降での例
$handle = fopen("http://www.example.com/", "rb");
$contents = stream_get_contents($handle);
fclose($handle);
?>

<?php
$handle = fopen("http://www.example.com/", "rb");
$contents = '';
while (!feof($handle)) {
  $contents .= fread($handle, 8192);
}
fclose($handle);
?>

注意: 上の例では繰り返し毎に関数をコールしないのでオーバーヘッドが抑制できるため、 伝統的な while(!feof()) を使うアプローチよりも パフォーマンス的にベターです。
注意: 文字列にファイルを読み込みたいだけならば、file_get_contents() を使うほうが上記の例よりも効率的です。
fwrite()fopen()fsockopen()popen()fgets()fgetss()fscanf()file()fpassthru() も参照してください。

fread

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/12/05 16:43 UTC 版)

ナビゲーションに移動 検索に移動

freadは、C言語の標準入出力ヘッダーファイル <stdio.h> で宣言されている関数である。 主に、バイナリ形式のファイル入力に使われる。

形式

ISO/IEC 9899:1999 では、以下のように定義されている[1]

概要
#include <stdio.h>
size_t fread(void * restrict ptr, size_t size, size_t nmemb, FILE * restrict stream);
説明
fread関数は、ptrが指す配列に、sizeで指定された大きさを持つ要素を最大nmemb個まで、streamが指すストリームから読み取る。各オブジェクトに対して、fgetc関数がsize回だけ呼び出され、読み取った順に、オブジェクトの上に正確に重なっているunsigned charの配列に結果が格納される。ストリームのファイル位置指示子[注釈 1](定義されている場合)は、正常に読み取られた文字数だけ進む。エラーが発生した場合、ストリームのファイル位置指示子の結果は不定である。要素の一部だけが読み取られた場合も、その値は不定である。
返却値
fread関数は、読み取りに成功した要素の数を返すが、読み取りエラーが発生した場合またはEOFに到達した場合に、nmembよりも小さくなる。sizeまたはnmembがゼロの場合、freadはゼロを返し、配列の内容とストリームの状態は変更されない。

テキストモード

streamがテキストモードで開かれていた場合、改行コードCR+LFは読み取りの際にLFで置換される処理系もある[2]。詳細は各処理系のリファレンスを参照のこと。

コード例

脚注

注釈

  1. ^ ISO/IEC 9899:1999 の position indicator は、JIS X 3010:2003 では「位置表示子」と訳されている。

出典

関連項目

外部リンク




固有名詞の分類


英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「fRead」の関連用語

fReadのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



fReadのページの著作権

   
PHP Documentation GroupPHP Documentation Group
Copyright © 1997 - 2026 by the PHP Documentation Group.
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのfread (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2026 GRAS Group, Inc.RSS