ที่มา , อ้างถึง , แหล่งข้อมูล

จำนวนการเปิดอ่าน 1,018
คะแนนเอกสาร

วันนี้พบปัญหาเล็กๆ น้อยๆ ที่สร้างปัญหาใหญ่ให้กับงานผมได้

คือ CSV ที่ส่งถูกสร้างมาจาก Excel ตัวไหนซักตัว ไม่รู้เวอร์ชั่นอะไร หรือไม่ก็ Excel ปกติ แต่ OS มันเพี้ยน ก็ไม่ทราบได้ (ผู้ที่ส่งไฟล์มาให้ผม ไม่ได้แจ้งเรื่องนี้)

จากนั้นพอเอามาเข้าฟังก์ชั่น fopen และ fgetcsv จากหลายๆ บรรทัด มันดันเห็นบรรทัดเดียว (แน่นอน ข้อมูลต้องเพี้ยน)


วิธีแก้ไขปัญหา

วิธีแก้ไขปัญหานี้ ง่ายมากๆ ครับ แค่เพิ่มการตั้งค่า auto_detect_line_endings = true เข้าไป ก่อนที่จะ fopen ดังตัวอย่างด้านล่าง

ini_set('auto_detect_line_endings', true);
$csv = fopen($file_path, 'r');

เพียงเท่านี้เอง ก็เรียบร้อย