อยากให้เขียน php อ่านไฟล์ text ที่มีลักษณะดังนี้ครับ
ตัวอย่างไฟล์
aaa bbbb ccccc ddd eee ffffffffffffff
aaa bbbb ccccc ddd eee ffffffffffffff
aaa bbbb ccccc ddd eee ffffffffffffff
aaa bbbb ccccc ddd eee ffffffffffffff
ตัวอย่างไฟล์ สังเกตได้ว่ามี หลายแถวแล้วก็หลายคอลัม จะทำยังไง
ให้เราสามารถ เก็บข้อมูลลงใน database ได้อะครับ
อยากให้เก็บอย่างนี้อะครับ
"INSERT INTO TABLE(data1,data2,data3,data4,data5,data6)VALUES('?????????????????????????????????????')";
จะแยกข้อมูลออกจาก TEXT FILE ได้อย่างไรครับ
ตัวอย่างไฟล์
aaa bbbb ccccc ddd eee ffffffffffffff
aaa bbbb ccccc ddd eee ffffffffffffff
aaa bbbb ccccc ddd eee ffffffffffffff
aaa bbbb ccccc ddd eee ffffffffffffff
ตัวอย่างไฟล์ สังเกตได้ว่ามี หลายแถวแล้วก็หลายคอลัม จะทำยังไง
ให้เราสามารถ เก็บข้อมูลลงใน database ได้อะครับ
อยากให้เก็บอย่างนี้อะครับ
"INSERT INTO TABLE(data1,data2,data3,data4,data5,data6)VALUES('?????????????????????????????????????')";
จะแยกข้อมูลออกจาก TEXT FILE ได้อย่างไรครับ
เอาหลักการไป
1. อ่านออกเป็นแถวด้วย file()
2. วนลูปแยกแต่ละแถวออกเป็นคอลัมน์ ด้วย explode()
ถ้ารู้จักประยุกต์ใช้คำสั่ง ก็ไม่มีอะไรยาก
1. อ่านออกเป็นแถวด้วย file()
2. วนลูปแยกแต่ละแถวออกเป็นคอลัมน์ ด้วย explode()
ถ้ารู้จักประยุกต์ใช้คำสั่ง ก็ไม่มีอะไรยาก
รบกวนอีกทีครับ
$data = "aaa bbbb ccccc ddddd";
แล้วเราจะตัดได้อย่างไรครับ
$data_ex = explode("????",$data);
ในเมื่อความยาวของช่องไฟไม่แน่นอนเลย
ใช้ preg_match() หรือใช้ explode() แบบเดิมแหละ แต่วนลูปเอา อันไหนไม่มีค่าก็ไม่ต้องบันทึก
ผมว่าคำถามนี้เหมือนคำถามลองภูมิมากกว่า เหมือนผู้ถาม ถามโดยไม่ได้ต้องการคำตอบที่แท้จริงไป เพราะ เงื่อนไขของคำถาม ดูไม่ค่อยเป็นธรรมชาติ ถ้าเป็นตัวอย่างที่เกิดขึ้นจริง ลองอธิบายที่มาของข้อมูลมาให้หน่อยซิ
ผมว่าคำถามนี้เหมือนคำถามลองภูมิมากกว่า เหมือนผู้ถาม ถามโดยไม่ได้ต้องการคำตอบที่แท้จริงไป เพราะ เงื่อนไขของคำถาม ดูไม่ค่อยเป็นธรรมชาติ ถ้าเป็นตัวอย่างที่เกิดขึ้นจริง ลองอธิบายที่มาของข้อมูลมาให้หน่อยซิ
ขออภัยท่านอาจารย์ครับที่ทำให้เข้าใจผิด
ไม่ได้มีเจตนาเช่นนั้นครับ
คือไฟล์ที่ถามไม่ได้คิดมาเองครับ พอดีผมต้องทำงานแล้วก็ต้อง Decode ไฟล์การสั่งสินค้าจากลูกค้าครับ
ซึ่งไฟล์ผมได้ลองใส่เป็นภาพมาให้ดูครับ
เดี๋ยวผมจะลองทำตามที่อาจารย์บอกนะครับ ถ้าไม่ได้หรือติดอะไร จะรบกวนถามต่อนะครับ
ลองดูตัวอย่างไฟล์ตามภาพนะครับ
อืม จากรูป เงื่อนไขนี้คงใช้ไม่ได้มั้ง อาจต้องหาตัวเลือกอื่น เนื่องจากมีบางฟิลด์ที่มีช่องว่างภายในฟิลด์ เช่น M IMCTM ซึ่งมีช่องว่างภายในข้อมูล เงื่อไขนี้จะทำให้ตัดคำได้ยาก เนื่องจากโปรแกรมจะแยกแยะไม่ออกว่าส่วนไหนคือข้อความที่ต้องตัด และอีกข้อนึงคือ แต่ละบรรทัดมีข้อมูลไม่เท่ากัน หรืออาจไม่สอดคล้องกัน ก็อาจทำให้การตัดเป็นไปได้ยากมากขึ้น
แนวคิดที่ดีกว่า คือ การเตีรยมข้อมูลเพื่อให้การตัดง่ายขึ้น ซึ่งก็ต้องย้อนกลับไปดูที่แหล่งที่มาของข้อมูล ว่าสามารถเปลี่ยนเป็นรูปแบบอื่นได้หรือไม่ ถ้าได้จะทำให้การทำงานง่ายขึ้นและลดความผิดพลาดของข้อมูลลง เข่น การคัันแต่ละฟิลด์ด้วยตัวคั่นอื่น เช่น data1|data2|data3 ซึ่งการแยกออกเป็น array จะง่ายขึ้นครับ
แนวคิดที่ดีกว่า คือ การเตีรยมข้อมูลเพื่อให้การตัดง่ายขึ้น ซึ่งก็ต้องย้อนกลับไปดูที่แหล่งที่มาของข้อมูล ว่าสามารถเปลี่ยนเป็นรูปแบบอื่นได้หรือไม่ ถ้าได้จะทำให้การทำงานง่ายขึ้นและลดความผิดพลาดของข้อมูลลง เข่น การคัันแต่ละฟิลด์ด้วยตัวคั่นอื่น เช่น data1|data2|data3 ซึ่งการแยกออกเป็น array จะง่ายขึ้นครับ
ขอบคุณครับสำหรับคำตอบ
แต่ยากครับสำหรับให้ทางลูกค้าแก้ข้อมูล เขาอาจจะ export มาจากโปรแกรมอะไรหรือปล่าวก็ไม่ทราบครับ
เดี๋ยวยังไงลองเขียนดูก่อนครับ ถ้าไม่ได้ยังไง จะมาถามใหม่ครับ
ขอบพระคุณ อาจารย์มากครับ
แต่ยากครับสำหรับให้ทางลูกค้าแก้ข้อมูล เขาอาจจะ export มาจากโปรแกรมอะไรหรือปล่าวก็ไม่ทราบครับ
เดี๋ยวยังไงลองเขียนดูก่อนครับ ถ้าไม่ได้ยังไง จะมาถามใหม่ครับ
ขอบพระคุณ อาจารย์มากครับ
