PHPのfread関数とfread関数の使い方
phpチュートリアル fread関数とfread関数の使い方
/*
fread 構文:
文字列 fread ( resource $handle , int $length )
fread() によって読み取られたバイトの長さは、参照されるファイル ポインターによって処理されます。できるだけ早く読んでください。次のいずれかの条件で停止します:
読み取られたバイト数
!eof (ファイルの終わり) に到達しました
利用可能なネットワーク (ストリーム) のパック
8192 バイト読み取り (開いた後のユーザー空間ストリーム)
*/
//freadファイル読み込み例1
$filename = "/www.bkjia.com/local/something.txt";
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));
fclose($handle);
//php5 以降のバージョンはリモートサーバーのコンテンツを読み取ります
$handle = fopen("http://www.bkjia.com/", "rb");
$contents = stream_get_contents($handle);
fclose($handle);
//
$handle = fopen("http://down.php100.com/", "rb");
$contents = '';
while (!feof($handle)) {
$contents .= fread($handle, 8192);
}
fclose($handle);
/*
ストリームの目的が eof や固定フラグでマークされていない場合があります。そのため、このループには永遠に時間がかかります。大変ご迷惑をおかけしました…
以下に示すように、break ステートメントを含む stream_get_meta_data 関数を使用して解決しました。
$fp = fsockopen("mb.php100.com", 80);
if (!$fp) {
エコー「$errstr ($errno)
」 ん」;
} その他 {
fwrite($fp, "ソケットによって送信されたデータ");
$content = "";
一方 (!feof($fp)) {
$content .= fread($fp, 1024);
$stream_meta_data = stream_get_meta_data($fp) // 行を追加しました
; If($stream_meta_data['unread_bytes'] ; }
fclose($fp);
$content をエコー;
}