2017-04-20 7 views
0

私の場合はこのようです:仮想プライベートサーバ上の4GBのCSVファイルをPHPで1GBのメモリしか使用できないようにするにはどうすればよいですか?

私はCSV 4GBカンマ区切りファイルを持っています。私の仮想プライベートサーバはPHP専用メモリが1GBしかありません。

は、私の質問はこれです:

ではなく、全体をメモリに4GBのファイルを読み込む時に一つだけのCSV行のためにメモリを割り当てる方法はありますか?

例コード:

<?php 
function getRows($file){ 
    $handle = fopen($file, 'rb'); 
    if($handle === false){ 
     throw new Exception(); 
    } 
    while(feof($handle)===false){ 
     $line_of_txt=fgetcsv($handle); 
    } 
    fclose($handle); 
    return $line_of_txt; 
} 
foreach(getRows('DWBankStatmentApril.csv') as $row){ 
    print_r($row); 
} 
?> 
+1

どのようなエラーが表示されますか? –

+1

Loading time; 1 GBのVPS上の4GBデータで問題がどこにあるかを知ることができます。明らかにメモリの貧弱な使用。私は、大量のデータセットをシステムメモリのごくわずかな量だけ繰り返す方法があるかどうかを見たいと思っています。 –

+0

私はどんなエラーを受けたのですか? –

答えて

0

が今、それを手に入れました。

<?php 
function getRows($file){ 
    $handle = fopen($file, 'rb'); 
    if($handle === false){ 
     throw new Exception(); 
    } 
    while(feof($handle)===false){ 
     yield=fgetcsv($handle); 
    } 
    fclose($handle); 

} 
foreach(getRows('DWBankStatmentApril.csv') as $row){ 
    print_r($row); 
} 
?> 

問題ではなく、それらは主に順方向専用システムメモリの小さな量の大きなデータセットをinteratingために使用される発電機を使用することによって解決しました。

関連する問題