ホームページ  >  記事  >  php教程  >  php fread() の使用に関するヒント

php fread() の使用に関するヒント

WBOY
WBOYオリジナル
2016-06-13 12:19:121189ブラウズ

説明
string fread ( int handle, int length )
fread() は、ファイル ポインター ハンドルから最大 length バイトを読み取ります。この関数は、最大 length バイトの読み取り後、または EOF に達したとき、または (ネットワーク ストリームの場合) パケットが使用可能になったとき、または (ユーザー空間ストリームを開いた後) 8192 バイトの読み取りが完了したときに呼び出されます。どの条件が最初に発生したかに応じて異なります。
読み取った文字列を返すか、エラーが発生した場合は FALSE を返します。

コードをコピー コードは次のとおりです:


// ファイルの内容を取得します文字列
$filename = "/usr/local/something.txt";
$handle = fopen($filename, "r");
$contents = fread($handle, filesize ($filename) ));
fclose($handle);
?>


警告
バイナリ ファイルとテキストを区別する fopen() 関数ファイル (Windows など) モードパラメータには「b」を追加する必要があります。

コードをコピー コードは次のとおりです:


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


警告
リモート ファイルや、popen() や proc_open() から返されたストリームから読み取る場合など、 、パッケージが利用可能になると読み取りが停止します。これは、以下の例に示すように、データを収集してチャンクにマージする必要があることを意味します。

コードをコピーします コードは次のとおりです:


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

$handle = fopen ("http://www.example.com/", "rb"); >while (!feof($handle)) {
$contents .= fread($handle, 8192)
fclose($handle)>; >
注: ファイルの内容を文字列として読み込むだけの場合は、file_get_contents() を使用します。そのパフォーマンスは上記のコードよりもはるかに優れています。
追加:
file_get_contents
(PHP 4 >= 4.3.0, PHP 5)
file_get_contents -- ファイル全体を文字列に読み取ります
Description

string file_get_contents ( string filename [, bool use_include_path [, resource context [, int offset [, int maxlen]]]] )

file_get_contents() がファイルを文字列に読み取ることを除いて、file() と同じです。長さ maxlen の内容は、offset パラメーターで指定された位置から読み取られます。失敗すると、file_get_contents() は FALSE を返します。
file_get_contents() 関数は、ファイルの内容を文字列に読み取る方法として推奨されます。オペレーティング システムがサポートしている場合は、パフォーマンスを向上させるためにメモリ マッピング テクノロジも使用されます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。