在嘗試將陣列轉換為CSV 格式時,開發人員可能會遇到諸如無休止的挑戰線路並停用強制下載。本文解決了這些問題並提出了更有效的方法。
初始程式碼嘗試使用多個巢狀循環從資料庫中提取資料並追加將其儲存為 CSV 檔案。但是,此方法會產生單行長行,而不是格式正確的 CSV。此外,文件下載不會自動啟動。
要解決這些問題,請考慮實施以下步驟:
利用fputcsv( ) 寫入值:
<code class="php">fputcsv($output, array('id','name','description'));</code>
強製文件下載:
<code class="php">header("Content-Disposition:attachment;filename=pressurecsv.csv"); </code>
<code class="php">$num = 0; $sql = "SELECT id, name, description FROM products"; if($result = $mysqli->query($sql)) { while($p = $result->fetch_array()) { $prod[$num]['id'] = $p['id']; $prod[$num]['name'] = $p['name']; $prod[$num]['description'] = $p['description']; $num++; } } $output = fopen("php://output",'w') or die("Can't open php://output"); header("Content-Type:application/csv"); header("Content-Disposition:attachment;filename=pressurecsv.csv"); fputcsv($output, array('id','name','description')); foreach($prod as $product) { fputcsv($output, $product); } fclose($output) or die("Can't close php://output");</code>這種改進的方法利用fputcsv() 來高效產生CSV 行,並設定必要的標頭來啟動檔案下載。
以上是如何解決將 PHP 陣列匯出為 CSV 格式的挑戰?的詳細內容。更多資訊請關注PHP中文網其他相關文章!