2
通過相對較小的數據塊讀取php文件的最佳方式是什麼?使用PHP讀取「塊」中的文件使用PHP
例如,讀5MB,然後自由內存和讀取另一個5MB
我正在寫在PHP解析工具,需要讀取一個巨大的文件,並轉換成CSV。
我的問題是,我經常超出允許的內存限制,並且在我的環境中提高它不是一個選項。
這是能夠完成任務的部分代碼:
$i = 0;
$fileName = "test.txt";
$file = fopen($fileName,'r');
while($i <= 2000) {
$line = fgets($file);
$streetsheet[$i] = preg_split('@\ @',$line,NULL, PREG_SPLIT_NO_EMPTY);
++$i;
}
fclose($file);
$fp = fopen('result.csv','w');
foreach($streetsheet as $key=>$value) {
fputcsv($fp, $value);
}
例如,在文檔片斷上面顯示我在看第一行2000的文件,以及它工作得很好。
當我改變的條件
while(!feof($file)){\*....*\}
問題就出現了它立刻告訴我,我已經超過了允許的內存限制,然後它告訴我,導致問題的行是一個我正在使用preg_split。
所以我不知道什麼是一次讀取文件的最佳方式... 1000行?
謝謝!
如果你打算至少要downvote有最起碼的禮貌解釋爲什麼
天啊..這是令人尷尬的,你是非常正確的! 我只是使用其他數組進行測試,並且在完成它之後我忘記刪除它,非常感謝! – ILikeTacos 2013-04-25 00:37:04