Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

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


ในการแยกวิเคราะห์ไฟล์ CSV ใน PHP โค้ดจะเป็นดังนี้ ภายใต้ fopen() ให้กำหนดเส้นทางของไฟล์ .csv−

ตัวอย่าง

$row_count = 1;
if (($infile = fopen("path to .csv file", "r")) !== FALSE) {
   while (($data_in_csv = fgetcsv($infile, 800, ",")) !== FALSE) {
      $data_count = count($data_in_csv);
      echo "<p> $data_count in line $row_count: <br /></p>\n";
      $row_count++;
      for ($counter=0; $counter < $data_count; $counter++) {
         echo $$data_in_csv[$counter] . "<br />\n";
      }
   }
   fclose(infile);
}

คำอธิบายโค้ด − ไฟล์สามารถเปิดได้ในโหมดการอ่าน (ถ้ามี) และสามารถอ่านและแสดงผลได้จนกว่าจะถึงขีดจำกัดความยาว ตัวนับ row_count สามารถเพิ่มเพื่อแยกวิเคราะห์บรรทัดถัดไปในไฟล์ได้

ผลลัพธ์

ไฟล์ CSV อินพุตจะถูกแยกวิเคราะห์และแสดงทีละบรรทัด

สำหรับเวอร์ชัน PHP>=5.3.0 สามารถใช้โค้ดด้านล่างได้−

$file_to_read = file('path to .csv file');
$data_to_ingest = [];
foreach ($file_to_read as $infile) {
   $data_to_ingest[] = str_getcsv(infile);
}

หมายเหตุ − สิ่งนี้จะไม่ทำงานหากไฟล์ CSV มีอักขระขึ้นบรรทัดใหม่ เนื่องจากตรรกะคือฟังก์ชันแยกการขึ้นบรรทัดใหม่และไม่ระบุเครื่องหมายคำพูด