說明
string fread ( int handle, int length )
fread() 從檔案指標 handle 讀取最多 length 個位元組。該函數在讀取完最多 length 個位元組數,或到達 EOF 的時候,或(對於網路流)當一個包可用時,或(在開啟使用者空間流之後)已讀取了 8192 個位元組時就會停止讀取檔案,視乎先碰到哪種情況。
返回所讀取的字串,如果出錯返回 FALSE。
複製代碼 代碼如下:<?php
// get contents of a file into a string
$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() 以及 proc_open() 返回的流時,讀取會在一個包可用之後停止。這意味著應該如下例所示將資料收集起來合并成大塊。 複製代碼 代碼如下:<?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);
?>
注意: 如果只是想將一個檔案的內容讀入到一個字串中,用 file_get_contents(),它的效能比上面的代碼好得多。
額外:
file_get_contents
(PHP 4 >= 4.3.0, PHP 5)
file_get_contents -- 將整個檔案讀入一個字串
說明
string file_get_contents ( string filename [, bool use_include_path [, resource context [, int offset [, int maxlen]]]] )
和 file() 一樣,只除了 file_get_contents() 把檔案讀入一個字串。將在參數 offset 所指定的位置開始讀取長度為 maxlen 的內容。如果失敗,file_get_contents() 將返回 FALSE。
file_get_contents() 函數是用來將檔案的內容讀入到一個字串中的首選方法。如果作業系統支援還會使用記憶體映射技術來增強效能。