Dalam cuba mengubah tatasusunan kepada format CSV, pembangun mungkin menghadapi cabaran seperti tidak berkesudahan talian dan muat turun paksa yang dilumpuhkan. Artikel ini menangani isu ini dan membentangkan pendekatan yang lebih cekap.
Percubaan kod awal menggunakan beberapa gelung bersarang untuk mengekstrak data daripada pangkalan data dan menambah ke fail CSV. Walau bagaimanapun, kaedah ini menghasilkan satu baris panjang dan bukannya CSV yang diformat dengan betul. Selain itu, muat turun fail tidak dimulakan secara automatik.
Untuk menyelesaikan masalah ini, pertimbangkan untuk melaksanakan langkah berikut:
Gunakan fputcsv() untuk Menulis Nilai:
<code class="php">fputcsv($output, array('id','name','description'));</code>
Kuatkuasakan Muat Turun Fail:
<code class="php">header("Content-Disposition:attachment;filename=pressurecsv.csv"); </code>
Menggabungkan cadangan di atas menghasilkan kod yang lebih berkesan:
<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>
Pendekatan yang dipertingkatkan ini menggunakan fputcsv() untuk penjanaan baris CSV yang cekap dan menetapkan pengepala yang diperlukan untuk memulakan fail muat turun.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Cabaran dalam Mengeksport Tatasusunan PHP ke Format CSV?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!