file_get_contents文件是用來讀寫文件的,但我發現用file_get_contents 讀取大文件出錯提示Note: string can be as large as 2GB了,這個就是不能超過2G了,有沒有辦法解決呢,下面我來一起來看。
如果我讀取一個 www.bKjia.c0m文件
代碼如下 復制代碼$u ='www.bKjia.c0m'; //此文件為100GB
$a =file_get_contents( $u );
運行提示
Note: string can be as large as 2GB
不能大於2GB了,我們去官方看此函數參考
string file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context [, int $offset = -1 [, int $maxlen ]]]] )
發現有個
file_get_contents() 把文件讀入一個字符串。將在參數 offset 所指定的位置開始讀取長度為 maxlen 的內容。如果失敗, file_get_contents() 將返回 FALSE。
原來如此,這樣我們對程序進行修改即可
$u ='www.bKjia.c0m'; //此文件為100GB
$a =file_get_contents( $u,100,1000 );
讀取成功了
總結
file_get_contents如果正常返回,會把文件內容儲存到某個字符串中,所以它不應該返回超過2G長度的字符串。
如果文件內容超過2G,不加offset和maxlen調用file_get_contents的話,肯定會返回false,