ในการบันทึกข้อมูลลงไฟล์ของ PHP นั้น มีการสร้างฟังก์ชั่นไว้รองรับอยู่แล้ว 4 ฟังก์ชั่นคือ
- fopen() - สร้างไฟล์ใหม่ / เปิดไฟล์
- fwrite() - เขียนลงในไฟล์ที่เปิดอยู่
- fread() - อ่านข้อมูลในไฟล์ขึ้นมาใช้
- fclose() - ปิดไฟล์เมื่อใช้งานเสร็จ
อันที่จริงแล้วฟังก์ชั่นเหล่านี้ถือว่าอเนกประสงค์นะครับ ใช้ได้ครอบคลุมกับไฟล์ทุกแบบ แต่ไฟล์แต่ละแบบก็จะมีลักษณะและข้อกำหนดที่ต่างกันออกไป ซึ่งวันนี้ผมตั้งใจจะเขียนถึงไฟล์ประเภท CSV ครับ
CSV คืออะไร?
CSV ย่อมาจาก Comma Separated Values แปลแบบรวบรัดว่า "คั่นระหว่างข้อมูลด้วยคอมม่า" และนั่นเป็นข้อกำหนดหลักข้อเดียวของไฟล์ประเภทนี้ครับ จากภาพประกอบคุณคงพอเห็นแล้วว่า ไฟล์ประเภท CSV มีรูปแบบที่เรียบง่าย และสร้างได้เองจากโปรแกรมทั่วไป และเพราะง่ายนี่แหละครับทำให้มันเป็นรูปแบบไฟล์ยอดนิยมรูปแบบหนึ่งที่ใช้งานกันอย่างแพร่หลายมากทีเดียว ทำให้มันสามารถนำไปใช้ต่อในแบบต่างๆ เช่นเปิดมาใช้งานในโปรแกรม MS Excel หรือใช้กับการนำข้อมูลตั้งต้นใส่เข้าไปในฐานข้อมูลเป็นต้น
ในการสร้างและอ่านไฟล์ CSV จะมีฟังก์ชั่นเสริมทัพอีก 2 ตัวครับ คือ
- fputcsv() - เขียนเป็นไฟล์แบบ CSV
- fgetcsv() - อ่านไฟล์แบบ CSV
สำหรับ Syntax Diagram และตัวอย่างอื่นๆ ไปลองหาอ่านดูนะครับ สำหรับท้ายบทความนี้แสดง Code ไว้ให้ดูต่างหน้าละกันนะครับ
ฝั่งเขียนไฟล์
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php // ข้อมูลที่ต้องการเก็บ $list = array( "10,กรุงเทพมหานคร,13.7538762095,100.5017709732", "11,สมุทรปราการ,13.640081,100.750065" ); // บันทึกข้อมูลลงไฟล์ contacts.csv $file = fopen("province.csv","w"); foreach ($list as $line){ fputcsv($file,explode(',',$line)); } // ปิดไฟล์ fclose($file); ?> |
หมายเหตุ
กรณีมีภาษาไทยปนในข้อความแล้วทำให้เกิดปัญหา อาจลองใช้คำสั่ง setlocale เพื่อแจ้งให้ php รู้ว่าในนั้นมีรหัสภาษาไทยแทรกอยู่ในอักขระด้วย ต้องแก้ setlocale ( LC_ALL, 'en_US.UTF-8' ); เป็น setlocale ( LC_ALL, 'Thai' ); ครับ
0 ความคิดเห็น