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

ถ้าเราต้องการแสกบรรทัดจาก ชุดข้อความ ใดๆ ก็ตาม มันเป็นวิธีง่ายๆ โดยการใช้ explode แยกเอาด้วยตัวขึ้นบรรทัดใหม่ได้เลย โดยตัวขึ้นบรรทัดใหม่นี้ PHP ได้เตรียม ค่าคงที่ไว้ให้แล้วในชื่อ  PHP_EOL ดังตัวอย่างนี้

$lines = explode(PHP_EOL, $text);

แค่นี้ เราก็จะได้ Array ที่เป็นชุด ข้อความแต่ละบรรทัดแล้ว

แต่ว่า ... ในความเป็นจริงๆ แล้ว ไอ้ PHP_EOL นั้น มันเป็น ตัวขึ้นบรรทัดใหม่ ของระบบปฏิบัติการ ที่ PHP ตัวนั้นๆ ทำงานอยู่ เช่น ถ้า PHP รันบน Linux มันก็เป็น ตัวอักษร ขึ้นบรรทัดใหม่ของ Linux ซึ่ง ไอ้ตัวอักษรที่ว่านี้ บน Linux และ Windows ก็ดันไม่เหมือนกันอีก

ดังนั้น ปัญหามาแน่ ถ้าเราดันเอา ชุดข้อความ จากระบบนึง แล้วไปแตกบรรทัด ที่อีกระบบนึง อาจจะด้วย จากการโอนฐานข้อมูลมา อัพโหลดไฟล์ข้อความ มาอ่าน หรืออะไรก็ตาม บลาๆๆ

แต่วิธ๊แก้มันก็มี เราต้องใช้อย่างอื่นแยกมันแทน พูดมากไปก็เท่านั้น ดูตัวอย่างด้านล่างนี้เลยครับ

$lines = preg_split('/\r\n|\r|\n/', $text);

จะเห็นว่า แทนที่จะใช้ PHP_EOL ตัวเดียวโดดๆ ในการแตกข้อความ เราก็ใช้โค้ดขึ้นบรรทัดใหม่ ของทุกระบบแทนไปเลย โดยใช้ทั้ง  \n , \r และ \r\n กันไปเลย