通常php獲取檔案時,會使用file_get_contents()。但當獲取大檔案時,可能會報這樣的錯:
allowed memory size of 134217728 bytes exhausted (tried to allocate 49422336 bytes)
這是因為file_get_contents()獲取檔案時,會把檔案內容放到乙個字串裡, 當字串大小超過php.ini裡設定的memory_limit 引數時,就會報這個錯。解決方法是可以把這個引數修改的大一點,一般是128m,可以修改的更大點。但修改後需要重啟伺服器,這很麻煩。也可以動態修改這個值,使用 ini_set。 本人使用的是下面的方法來解決:
$handle = fopen("遠端檔案位址", "rb");
$fp = fopen('vv.mp4', 'w');//開啟乙個檔案,
while (!feof($handle))
fclose($handle);
fclose($fp);
這樣再大的檔案也可以讀取,只不過迴圈次數多點,用時長點。 獲取遠端大檔案部分內容的方法
獲取遠端大檔案部分內容的方法 一些其它介紹可以移步 或者直接檢視rfc 我們使用檔案記錄上次訪問的位置,下次直接從這個位置訪問 使用php的fsockopen函式實現獲取大檔案部分內容的 如下 123 4567 891011 1213 1415 1617 1819 2021 2223 2425 26...
php快速獲取超大檔案行數的方法
start microtime true filesize filesize shuiping yang.log fp fopen shuiping yang.log r getfp fopen shuiping yang.log r lines 0 line 0 獲取檔案的一行內容,注意 需要ph...
php上傳大檔案設定方法
開啟php.ini,首先找到 file uploads 區域,有影響檔案上傳的以下幾個引數 file uploads on 是否允許通過http上傳檔案的開關。預設為on即是開 upload tmp dir 檔案上傳至伺服器上儲存臨時檔案的地方,如果沒指定就會用系統預設的臨時資料夾 upload m...