CSV PHP İhracat MySQL - Sonuçları HTML gösteren

2 Cevap php

Zaten bu konuda bir yazı gördüm, ama gerçekten (o bana en az çalışmış) bir çözüm sağlamak vermedi ...

Ben bazı temel MySQL sorguları yapan bir PHP sayfası var, sonuçları sayfasında görüntülenir. Ben bu süreç boyunca bazı $ _GET ve $ _SESSION değişkenleri kullanıyorum.

Aynı sayfada, ben de izin kullanıcı (bir işlev çağırarak) "CSV Aktar" için. Ihracat döndürülen dosya altındaki CSV sonuçlar var, ama aynı zamanda (işlevini çağırır) sayfamın HTML içerir.

Şimdi, () ob_start var Sayfanın üstündeki ve altındaki Aksini sayfa yük üzerinde biraz "başlığını değiştiremez ..." hataları alırsınız, ob_flush () var. Yani, ben okudum sonrası önerilen:

 My guess is that you've got some sort of template that generates the same HTML header and footer regardless of the page that is requested. Sometime before the exportCSV function is called, the header is generated.

 You don't show the bottom of the output, but I'll bet the footer is there too, since I suspect the flow control will continue on to that code after the function exits."

 (http://stackoverflow.com/questions/207019/why-am-i-getting-html-in-my-mysql-export-to-csv/207046)

Herkes Bunu önlemek için nasıl herhangi bir fikir var mı? Benim kod bazı yayınlamak olursa bana bildirin ve ben will ...

Teşekkürler!

EDIT:

Ben ihracat işlevi aramadan önce () ob_end_clean ararken, CSV önce herhangi bir html kurtulur. Ancak, ben yine de CSV sonuçların ardından bazı HTML etiketleri kapatma alıyorum ...

 fname  lname	MONTH	WeekdayCount	WeekendCount
 John   Doe	8	1	0
 John   Doe	7	3	2
 Jane   Smith	7	3	2
 </div> 			
    </div>			
 </div> 			

 </body>    			

 </html>

EDIT:

Bu sorun, CSV ihracat dosyası arayarak sonra exit () çağırarak çözüldü.

2 Cevap

Eğer çıkış csv veri önce () ob_end_clean çağırarak deneyebilirsiniz, ve zaten HTML olarak basılmış herhangi bir çıktı atmak gerekir.

Eğer sayfa basılmaya kalanını durdurmak için sizin csv veri çıkışının () sonra çıkış diyebiliriz.

Bu çıkışı varsayılan üstbilgi ve altbilgiler içermez csv için ayrı bir PHP komut dosyası var olamaz, özellikle iyi bir yaklaşım gibi görünmüyor?

Lütfen komut görmeden size ANY içerik gönderilen ettik sonra istemciye HTTP başlıklarını göndermek olamaz demek daha sorun, diğer tam olarak ne olduğunu söylemek zor. Bu beyaz boşluk içerir. Bazen açılış <?php deyimi önce de olmayan basılabilir karakterler olacak. Gerekirse bu bulmak için bir hex editörü kullanın.

Lütfen export.php yazısının üst gibi görünmelidir:

<?php
header('Content-Type: text/csv');
...

Bu durumda mı?