web-dev-qa-db-fra.com

PHP readfile vs file_get_contents

J'ai utilisé le code suivant pour générer Zip

// Push to download the Zip
header('Content-type: application/Zip');
header('Content-Disposition: attachment; filename="'.$Zip_name.'"');
readfile($Zip_name);

ce code fonctionne bien mais pour des raisons inconnues ne fonctionnait pas jusqu'à ce que j'essaye

// Push to download the Zip
header('Content-type: application/Zip');
header('Content-Disposition: attachment; filename="'.$Zip_name.'"');
echo file_get_contents($Zip_name);

Je suis curieux de savoir ce qui se passe dans les deux cas

31
justnajm

Readfile lira le fichier directement dans le tampon de sortie, et file_get_contents chargera le fichier en mémoire, lorsque vous faites écho au résultat, les données sont copiées de la mémoire dans le tampon de sortie en utilisant efficacement 2 fois la mémoire du fichier de lecture.

54
Jesper Blaase