PHP ile CSV olarak ihracat sorgu sonucu

2 Cevap php

Ben $ sorgu adlı bir değişken bir sorgu saklanan söylüyorlar. Ben sonuç sayfasındaki "CSV olarak ihracat" olarak adlandırılan küçük hyper link oluşturmak istiyorum. Ben bunu nasıl yaparlar?

2 Cevap

ehm?

<a href="yourexport.php" title="export as csv">Export as CSV</a>

ve komut wich arıyorsanız bunu yapabilirsiniz:

$myArray = array ();

$fp = fopen('export.csv', 'w');

foreach ($myArray as $line) {
    fputcsv($fp, split(',', $line));
}

fclose($fp);

CSV = Virgülle Ayrılmış Değerler = virgüller ile Değerlerini Ayrı

Eğer (,) virgül ile ayrılır, çizgi ederek sonuç satırı yazdırmak / echo zorunda.

Ben $ sorgu bir ilişkisel dizidir sorgunun sonuç kümesi olduğunu varsayalım:

while($query = mysql_fetch_assoc($rs)) {
  // loop till the end of records
  echo $query["field1"] . "," . $query["field2"] . "," . $query["field3"] . "\r\n";
}

$ rs kaynak kolu olduğu.

Tarayıcı bir indirme kutusu açılır izin vermek için, (dosya adı export.csv varsayıyorum) dosyanın başında başlığını ayarlamanız gerekir:

header("Expires: 0");
header("Cache-control: private");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Description: File Transfer");
header("Content-Type: application/vnd.ms-excel");
header("Content-disposition: attachment; filename=export.csv");

İşte bu!

P.S. Bu yöntem sunucuda fiziksel bir dosya bırakmaz. Eğer sunucu bir dosya oluşturmak için tasarlanmıştır eğer, geleneksel fopen ve fwrite fonksiyonları kullanın.