CSV ไฟล์มีค่าที่คั่นด้วยเครื่องหมายจุลภาคและเป็นรูปแบบการจัดการข้อมูลที่เป็นที่นิยมและเป็นที่ยอมรับซึ่งใช้ในการจัดเก็บข้อมูลในรูปแบบตาราง ไฟล์เหล่านี้สามารถสร้างได้อย่างง่ายดายด้วย MS Excel, OpenOffice และ Google Sheets แยกวิเคราะห์ CSV file กำลังอ่านไฟล์ทีละบรรทัดและแยกบรรทัดออกเป็นค่าอาร์เรย์
ในคู่มือนี้ เราจะอธิบายวิธีแยกวิเคราะห์ a CSV ไฟล์โดยใช้ PHP
แยกวิเคราะห์ไฟล์ CSV โดยใช้ PHP
วิธีการในตัวของ PHP ที่แยกวิเคราะห์ไฟล์ CSV คือ fgetcsv() และอ่านบรรทัดจากไฟล์ CSV และแยกวิเคราะห์เป็นอาร์เรย์
ไวยากรณ์ของการใช้ fgetcsv() ฟังก์ชันใน PHP มีดังนี้:
fgetcsv ( '<ชื่อไฟล์>.csv' , ความยาว , ',' )
ฟังก์ชั่นนี้ยอมรับ สามพารามิเตอร์ ชื่อของไฟล์ ความยาวพารามิเตอร์ทางเลือกของบรรทัดที่ยาวที่สุด และตัวคั่นฟิลด์พารามิเตอร์ทางเลือกอื่น ตัวคั่นฟิลด์เริ่มต้นคือเครื่องหมายจุลภาคที่มีเครื่องหมายอัญประกาศคู่เป็นตัวคั่น
ใช้ฟังก์ชัน fgetcsv() เพื่อแยกวิเคราะห์ไฟล์ CSV ใน PHP
นี่คือวิธีที่คุณสามารถใช้ fgetcsv() ฟังก์ชันแยกวิเคราะห์ไฟล์ CSV ใน PHP:
ขั้นตอนที่ 1 : ขั้นแรก ให้เปิดไฟล์ CSV โดยใช้ไฟล์ เปิด () การทำงาน. ที่นี่ โหมด R ใช้สำหรับเปิดไฟล์เพื่ออ่านและ $ จัดการ เป็นที่จับสำหรับเก็บข้อมูลจากไฟล์:
$ จัดการ = เปิด ( 'ชื่อไฟล์.csv' , 'ร' ) ;
ขั้นตอนที่ 2 : หลังจากนั้น คุณสามารถใช้ลูป while เพื่อแยกวิเคราะห์แต่ละรายการ CSV แยกจากกัน การวนซ้ำจะดำเนินต่อไปจนถึงจุดสิ้นสุดของไฟล์:
ในขณะที่ ( ( ข้อมูล $ = fgetcsv ( $ จัดการ , 1,000 , ',' ) ) !== เท็จ ){
// อ่านข้อมูลของไฟล์ CSV
}
ขั้นตอนที่ 3 : เมื่อไฟล์ถูกอ่าน คุณต้องปิดมันโดยใช้ฟังก์ชัน fclose() โดยผ่านแฮนเดิลเป็นอาร์กิวเมนต์เท่านั้น
ปิด ( $ จัดการ ) ;นี่คือรหัสที่สมบูรณ์ใน PHP ที่ทำตามขั้นตอนด้านบนและอนุญาตให้คุณเปิดไฟล์ CSV ในโหมดอ่านอย่างเดียว หากพบไฟล์ มิฉะนั้นจะส่งคืน เท็จ :
$ จัดการ = เปิด ( 'ข้อมูล.csv' , 'ร' ) ;
ในขณะที่ ( ( $ แถว = fgetcsv ( $ จัดการ ) ) !== เท็จ ) {
var_dump ( $ แถว ) ;
}
ปิด ( $ จัดการ ) ;
?>
โค้ดข้างต้นเปิดไฟล์ 'data.csv' ในโหมดอ่านก่อนโดยใช้ฟังก์ชัน fopen() และกำหนดตัวจัดการไฟล์ให้กับตัวแปร $handle หลังจากนั้นจะอ่านแต่ละบรรทัดของไฟล์โดยใช้ลูป while และฟังก์ชัน fgetcsv() รหัสใช้การเปรียบเทียบเท็จ !== เพื่อให้แน่ใจว่าอ่านจนจบไฟล์
เอาต์พุต
แปลงไฟล์ CSV เป็นอาร์เรย์หลายมิติใน PHP
คุณยังสามารถแยกวิเคราะห์ CSV ไฟล์โดยแปลงเป็นอาร์เรย์หลายมิติเพื่อให้อ่านข้อมูลภายในไฟล์ได้ง่าย รหัสต่อไปนี้จะช่วยให้คุณแยกข้อมูลจากไฟล์ CSV ในลักษณะที่เป็นระเบียบมากขึ้น
$ชื่อไฟล์ = 'ข้อมูล.csv' ;
$nested_array = [ ] ;
ถ้า ( ( $ จัดการ = เปิด ( ' {$ชื่อไฟล์} ' , 'ร' ) ) !== เท็จ )
{
ในขณะที่ ( ( ข้อมูล $ = fgetcsv ( $ จัดการ , 1,000 , ',' ) ) !== เท็จ )
{
$nested_array [ ] = ข้อมูล $ ;
}
ปิด ( $ จัดการ ) ;
}
เสียงสะท้อน '<ก่อน>' ;
var_dump ( $nested_array ) ;
เสียงสะท้อน '' ;
ในการทำให้ข้อมูลอยู่ในรูปแบบที่อ่านได้ โค้ดด้านบนจะใช้ฟังก์ชันที่เรียกว่า var_dump() ที่จัดรูปแบบและส่งออกข้อมูลในลักษณะที่มีโครงสร้างภายในแท็กล่วงหน้าของ HTML
เอาต์พุต
นี่เป็นอีกวิธีในการเปิด CSV ไฟล์ใน PHP ในลักษณะที่กำหนดเองมากขึ้น รหัสที่ระบุด้านล่างจะแสดงข้อมูลของแต่ละแถว ก่อนอื่น เราเปิดไฟล์โดยใช้ไฟล์ ฟังก์ชัน fopen() . จากนั้นใช้ที่จับเพื่อวางแต่ละแถวของไฟล์ และใช้การวนรอบ while เพื่ออ่านทั้งหมด CSV ไฟล์จนกว่าตัวชี้จะไปถึงจุดสิ้นสุดของไฟล์ ในตอนท้าย เราปิดไฟล์:
$ แถว = 1 ;
ถ้า ( ( $ จัดการ = เปิด ( 'ข้อมูล.csv' , 'ร' ) ) !== เท็จ ) {
ในขณะที่ ( ( ข้อมูล $ = fgetcsv ( $ จัดการ , 1,000 , ',' ) ) !== เท็จ ) {
$ตัวเลข = นับ ( ข้อมูล $ ) ;
เสียงสะท้อน '
$ตัวเลข เขตข้อมูลในบรรทัด $ แถว :
$ แถว ++;
สำหรับ ( $ค = 0 ; $ค < $ตัวเลข ; $ค ++ ) {
เสียงสะท้อน ข้อมูล $ [ $ค ] . '
\n ' ;
}
}
ปิด ( $ จัดการ ) ;
}
?>
เอาต์พุต
บรรทัดล่าง
ใน พี.เอช.พี เราสามารถเปิดไฟล์โดยใช้ เปิด () ฟังก์ชันอ่านไฟล์ทีละบรรทัดโดยใช้ fgetcsv() ฟังก์ชัน และปิดไฟล์โดยใช้ปุ่ม fclose() การทำงาน. กระบวนการนี้สามารถทำซ้ำได้สำหรับแต่ละบรรทัดใน CSV ช่วยให้คุณสามารถอ่านและจัดการข้อมูลแบบตารางใน PHP ได้อย่างง่ายดาย