วิธีที่ส่งออกข้อมูลที่ง่ายที่สุด และอิมพอร์ตเข้าโปรแกรมต่างๆได้มากที่สุดคือ comma-separated values ( CSV ) แปลง่าย ๆ ว่า ไฟล์ตารางที่คั่นด้วยคอมม่า แปลบ้าน ๆ ไปอีกคือ text file ที่ข้อมูลถูกแบ่งโดย , หรือเครื่องหมายอื่น เช่น pipe | โดยข้อมูลต่ละ record จะแบ่งโดยการขึ้นบรรทัดใหม่ ( ใน php คือ \n )
เขียนง่ายๆ แค่มีการเพิ่ม header เข้าไปว่ามันเป็น csv นะและ echo ธรรมดา ๆ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <?php $filename = 'Exports_Datas_' . date('Y-m-d_H:i'); header('Cache-Control: max-age=0'); header('Content-Encoding: UTF-8'); header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-type: text/csv; charset=UTF-8'); header('Content-Disposition: attachment;filename="'.$filename.'.csv"'); echo "\xEF\xBB\xBF"; /* UTF-8 BOM */ /* random add datas */ for($a = 0; $a < 10; $a++) { $datas = []; for($b = 0; $b < 5; $b++) { $datas[$b] = 'ส่งออกข้อมูล '.rand(1, 100); } echo implode(',', $datas)."\n"; } |
หลังจากเรียกไฟล์ php ก็จะเห็นว่ามีการให้ download ขึ้นมาให้ save ลองคลิกเปิดดูถ้าเครื่องมี excel อยู่ก็จะเปิดอ่านข้อมูลได้ทันที หรือจะใช้ text editor เปิดขึ้นมาดูก็ได้ ทดลองเปลี่ยนเป็นให้ดึงข้อมูลจาก database ดูครับ