2016-05-31 75 views
0

我正在使用下面的代碼導出多維數組。我使用笨框架(2.1.0版)從數組導出csv文件

問題:

  1. 我沒有任何雙引號/陣列單引號,但在CSV文件中某些領域有雙引號。

  2. 每一個CSV文件給我的前兩個空格,然後內容,我可以看到

CODE:

function array_to_csv($array, $download = "") { 
    if ($download != "") { 
     header('Content-Type: text/csv'); 
     header('Content-Disposition: attachement; filename="'.$download. 
      '"'); 
     header("Pragma: no-cache"); 
     header("Expires: 0"); 
    } 

    ob_start(); 
    $f = fopen('php://output', 'w') or show_error("Can't open php://output"); 
    $n = 0; 
    foreach($array as $line) { 
     $line = str_replace('"', '', $line); //Try to resolve first problem but it doesn't work for me. 
     $n++; 
     if (!fputcsv($f, $line)) { 
      show_error("Can't write line $n: $line"); 
     } 
    } 
    fclose($f) or show_error("Can't close php://output"); 
    $str = ob_get_contents(); 
    ob_end_clean(); 

    if ($download == "") { 
     return $str; 
    } else { 
     echo $str; 
    } 
} 
+0

如果在上面的代碼中需要進行任何代碼優化以使其更快,請給我建議 –

+0

對我來說,你看起來過於複雜了一點。爲什麼所有與ob_start等混亂?一旦你發送了你的頭文件,你可以直接寫每行到php://輸出。我看不出爲什麼你在開始時會出現空行,儘管 –

回答

0

嘗試調用這裏:

$line = str_replace('"', '', $line) 

微調功能。

+0

感謝您的回覆。但是這個我已經試過了,你可能會看到代碼。 –