web-dev-qa-db-ja.com

PHP readfile vs. file_get_contents

次のコードを使用してZipを生成しました

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

このコードは正常に動作しますが、未知の理由で私が試してみるまで動作しませんでした

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

両方のケースで何が起こっているのかを知りたい

31
justnajm

Readfileはファイルを出力バッファーに直接読み込み、file_get_contentsはファイルをメモリにロードします。結果をエコーすると、readfileの2倍のメモリを使用してデータがメモリから出力バッファーに効果的にコピーされます。

54
Jesper Blaase