2015-04-23 24 views
7

'da bir sorunla karşı karşıyadır Bir eklenti sayfamda bir rapor oluşturmak için basit bir CSV-dışa aktarma işlevi kullanıyorum.Dizinden CSV'ye dışa aktarma işlevi WordPress eklentisi

Bu kodu çalıştırırken, tüm html içeriğini beklenen dizimle birlikte dışa aktarmasıyla ilgili bir hata alıyorum.

İşte benim kodudur:

function convert_to_csv($input_array, $output_file_name, $delimiter) 
{ 
    clearstatcache(); 
    /** open raw memory as file, no need for temp files */ 
    $temp_memory = fopen('php://memory', 'w'); 
    /** loop through array */ 



    foreach ($input_array as $line) { 
     /** default php csv handler **/ 
     fputcsv($temp_memory, $line, $delimiter); 
    } 

    //echo '<pre>'; 
    //print_r($temp_memory); exit; 
    /** rewrind the "file" with the csv lines **/ 
    fseek($temp_memory, 0); 
    /** modify header to be downloadable csv file **/ 
    header('Content-Type: application/csv'); 
    header('Content-Disposition: attachement; filename="' . $output_file_name . '";'); 
    /** Send file to browser for download */ 
    fpassthru($temp_memory); 
} 

/** Array to convert to csv */ 

$array_to_csv = Array(
    Array(12566, 
     'Enmanuel', 
     'Corvo' 
    ), 
    Array(56544, 
     'John', 
     'Doe' 
    ), 
    Array(78550, 
     'Mark', 
     'Smith' 
    ) 

); 

clearstatcache(); 

convert_to_csv($array_to_csv, 'report.csv', ','); 
+0

Bu kodu çalıştırdığımda bir hata alamıyorum. Csv'yi beklendiği gibi indiririm. – Rasclatt

+0

Bu kodu WordPress'te eklenti ortamımda çalıştırdığımda, tüm html kodunu –

+0

listesiyle gösteren csv alıyorum Kod benim için beklendiği gibi çalışıyor ve bir csv dosyası indiriliyor. Bu sorunu çözmemize yardımcı olmak için eklenti ve Wordpress sürümü hakkında bilgi ekleyin. – geeves

cevap

0

Ben CSV'deki sonra HTML şablon çıktısını alırsınız bu işlev denir sonra WP normal operasyonları ile ilgili gerçekleştirmekte olduğunu da tahmin ediyorum. fpassthru'dan sonra bir exit ifadesine koymanız gerekir, ancak bunun, Wordpress'in her sayfa yanıtının sonunda yaptığı başka bir şeyden mahrum kalmamaya dikkat etmeniz gerekir. Drupal örneğin sadece bu amaç için bir drupal_exit() işlevine sahiptir. Emin olmak için WP ile yeterince tanıdık değilim, ancak wp_die() function belgelerinin çok fazla sorun olmadan PHP exit kullanabileceğinizi önerdi

İlgili konular