ฟังก์ชั่น fgetcsv ใช้สำหรับอ่านไฟล์ csv โดยมันจะทำการ parse ออกมาเป็น Array ให้เราเลยครับ. แต่ก่อนตอนที่ผมยังไม่รู้จักคำสั่งนี้ นั่งเขียนตัว Parse เองตั้งนานครับ แถมยังมีบั๊กอีกต่างหาก (- -‘)
เข้าเรื่องครับ… ผมยังไม่ได้ศึกษาอย่างจริงจังเหมือนกัน ว่าสาเหตุมันคืออะไรกันแน่ (เพราะขี้เกียจครับ) เอาเป็นบอกปัญหาและวิธีแก้เลยละกันนะครับ
ปัญหา คือ มันไม่สามารถ parse ภาษาไทยได้ครับ (เฉพาะบาง server ที่มี setting อะไรบางไม่ปรกติ)
วิธีแก้ ก็ง่ายๆ ครับ.. ใช้คำสั่ง setlocale ครับ. ประมาณนี้
<?php setlocale ( LC_ALL, 'en_US.UTF-8' ); ... ... $fields = fgetcsv ( $fp , $maxlength , $separator ); ?>
ผมก็ยังไม่ได้ค้นคว้าเหมือนกันว่า มันมีตัวเลือกอะไรบ้าง และมีผลอย่างไร แต่เอาเป็นว่าให้ใช้งานได้พอครับ