私の現在のコード:
$fileone= fopen("fileone.sql", "r"); //opens file fileone.sql
$fileonewrite = fopen("fileone.rdf", "w"); //this is the file to write to
$fileNum=1;
$i=0;
while (!feof($fileone) ) { //feof = while not end of file
if ($contents = fread($fileonewrite ,53687091200)); //if file is more than 50gb, write to new file (below) .. this doesnt seem to work properly
{ file_put_contents('fileone'.$fileNum.'.rdf',$contents);
$fileNum++;
}
$fileoneRow[] = fgets($fileone); //fgets gets line
$fileoneParts = explode("\t", $fileoneRow[$i]); //explode using tab delimiter
fwrite( " lots of stuff" );
unset($fileoneParts);
}
fclose($fileonetype);
fclose($fileonewrite);
大量のデータを読み取り、さらに多くのデータを出力すると、作成されるファイルは最大200GBになります。これにより、メモリの問題が発生します。ですから、私がやりたいのは、書き込み中のファイル(fileone.rdfなど)が50 GBに達したときに、filetwoへの書き込みを開始したいということです。私のコードatmは、何千もの空のファイルを出力しているように見えるため、うまく機能しません。
いつものように、私の質問を読んでくれてありがとう、どんな助けでも大歓迎です。