Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Accélérer l’écriture CSV sur disque

<?php

// Speedy yet memory intensive version
$f = fopen('php://memory', 'w+');
foreach($data_source as $row) {
    // You may configure fputcsv as usual
    fputcsv($f, $row);
}
rewind($f); // Important
$fp = fopen('final.csv', 'w+');
fputs($fp, stream_get_contents($f));
fclose($fp);
fclose($f);

// Slower version
$fp = fopen('final.csv', 'w+');
foreach($data_source as $row) {
    // You may configure fputcsv as usual
    fputcsv($fp, $row);
}
fclose($fp);
?>

Lors de l’écriture de fichiers CSV avec la fonction fputcsv(), PHP vide chaque ligne sur le disque. Pour accélérer le processus, il est possible d’ouvrir un fichier en mémoire, avec le wrapper php://memory, et d’y écrire le CSV. Il est ensuite possible d’écrire depuis la mémoire vers le disque en un seul lot, économisant de nombreux accès disque.

La même astuce peut être utilisée pour écrire n’importe quel type de fichier : écrire rapidement en mémoire, puis sur le disque en un seul lot.

See Also

PHP Features

Last updated: 11 October 2026