Neden CSV benim MySQL ihracat HTML alıyorum?

4 Cevap php

Bu soru daha önce soruldu biliyorum, ama ben bir sorun koştu.

Ben bu işlevi çalıştırdığınızda İşin tuhafı, bu bağlantı, işlevini yürütmek seçmek sayfanın html içerir.

function exportCSV($table) {
    $result = mysql_query("SHOW COLUMNS FROM ".$table."");
    $i = 0;
    if (mysql_num_rows($result) > 0) {
    	while ($row = mysql_fetch_assoc($result)) {
    		$csv_output .= $row['Field']."; ";
    		$i++;
    	}
    }
    $csv_output .= "\n";

    $values = mysql_query("SELECT * FROM ".$table."");
    while ($rowr = mysql_fetch_row($values)) {
    	for ($j=0;$j<$i;$j++) {
    		$csv_output .= $rowr[$j]."; ";
    	}
    	$csv_output .= "\n";
    }

    $filename = $file."_".date("Y-m-d_H-i",time());
    header("Content-type: application/vnd.ms-excel");
    header("Content-disposition: csv" . date("Y-m-d") . ".csv");
    header( "Content-disposition: filename=".$filename.".csv");
    print $csv_output;
    exit;
}

Does anyone know why it would include the HTML in the csv file? alt text

4 Cevap

Benim tahminim bakılmaksızın istenen sayfanın aynı HTML başlık ve altbilgi üretir şablonun çeşit var olmasıdır. ExportCSV fonksiyon denir bazen önce, başlığı oluşturulur.

Sen çıkış alt görünmüyor, ama ben akış kontrol fonksiyonu çıkar sonra bu kodu için devam edecektir sanıyorum beri altbilgi de var bahse girerim.

php gerçekten benim bir şey değil, ama içerik yazmadan önce yanıt akışı temizlemek gerekiyor gibi görünüyor. Belki de başka bir şey, bu işlevi ulaşmadan önce, akıma html dışarı yazıyor? Bir şablon veya ana sayfa ya da doğanın bir şey gibi?

HTML içeriği tipik bir başlık / nav bar gibi görünüyor. Eğer orada otomatik olarak bu rota için devre dışı bırakmak gerektiğini içerik dahil oluyor başka bir şey?

Ben senin yöntemi başında boş bir dizeye csv_output değişkenini başlatırken öneririz. Stilini operasyonları tüm concatenations, bu nedenle büyük olasılıkla bazı eski verilerin birlikte getiriyoruz.

Eğer tüm dünyaya potansiyel hassas veri gösteriyor ki düşünün lütfen. Artık e-posta ve sokak adresleri yayınlanmış bir düzine insan var.