วิธีแยกวิเคราะห์ไฟล์ CSV โดยใช้ PHP

Withi Yaek Wikheraah Fil Csv Doy Chi Php



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 , ',' ) ) !== เท็จ ) {

$ตัวเลข = นับ ( ข้อมูล $ ) ;

เสียงสะท้อน '

$ตัวเลข เขตข้อมูลในบรรทัด $ แถว :

\n '
;

$ แถว ++;

สำหรับ ( $ค = 0 ; $ค < $ตัวเลข ; $ค ++ ) {

เสียงสะท้อน ข้อมูล $ [ $ค ] . '
\n '
;

}

}

ปิด ( $ จัดการ ) ;

}

?>

เอาต์พุต

บรรทัดล่าง

ใน พี.เอช.พี เราสามารถเปิดไฟล์โดยใช้ เปิด () ฟังก์ชันอ่านไฟล์ทีละบรรทัดโดยใช้ fgetcsv() ฟังก์ชัน และปิดไฟล์โดยใช้ปุ่ม fclose() การทำงาน. กระบวนการนี้สามารถทำซ้ำได้สำหรับแต่ละบรรทัดใน CSV ช่วยให้คุณสามารถอ่านและจัดการข้อมูลแบบตารางใน PHP ได้อย่างง่ายดาย