PHP ile CSV Dışa Aktarma: Büyük Tabloları Akış Olarak Göndermek

  • Konbuyu başlatan Konbuyu başlatan sysuser
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 14

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
 
Geri
Üst