sysuser
PREMİUM
- Katılım
- 9 Kas 2025
- Mesajlar
- 174
- Tepki puanı
- 4
- Cinsiyet
- Kadın
PHP ile CSV Dışa Aktarma: Büyük Tabloları Akış Olarak Göndermek
Yüz binlerce satırlık tabloyu CSV olarak sunmak, tüm veriyi belleğe alarak yazmak yerine satır satır akış yöntemiyle çok daha az kaynak tüketir.
Akış Tabanlı Yaklaşım
PHP:
header('Content-Type: text/csv; charset=UTF-8');
header('Content-Disposition: attachment; filename="export.csv"');
$handle = fopen('php://output', 'w');
fputs($handle, "xEFxBBxBF"); // UTF-8 BOM — Excel için
$stmt = $pdo->query('SELECT * FROM orders');
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
fputcsv($handle, $row);
flush();
ob_flush();
}
fclose($handle);
Dikkat Edilecekler
- output_buffering kapalı olmalıdır; yoksa ob_end_clean() çağrısı ekleyin
- set_time_limit(0) ile zaman aşımı devre dışı bırakın
- Nginx'te fastcgi_buffering off ayarı akışın tarayıcıya anında ulaşmasını sağlar