[PHP] file_get_contents vs fopen

lundi 12 novembre 2018

Il faut savoir que la fonction file_get_contents charge en mémoire l’entièreté du fichier.

Du coup, cette solution n’est pas valable si vous travaillez avec des gros fichiers.

En utilisant, la fonction fopen, PHP aura besoin seulement quelques MB de RAM même si on upload un fichier de plusieurs Gigas.

Bon à savoir, j’ai rencontré ce soucis en voulant uploader de gros fichiers vers un disque Amazon S3

$disk= Storage::disk('s3');
$disk->put($targetFile, file_get_contents($sourceFile));
// devient
$disk = Storage::disk('s3');
$disk->put($targetFile, fopen($sourceFile, 'r+'));

Tags: PHP