PHP phân tích cú pháp CSV

Như bạn có thể thấy, thư viện hỗ trợ cả thuộc tính công khai và phương thức setter. Chỉ cần sử dụng những gì bạn thích

Đối với gợi ý loại, bạn có thể sử dụng bất kỳ hàm vô hướng nào có sẵn (chuỗi, bool, int và float) hoặc một trong các dẫn xuất ngày giờ (DateTimeInterface, DateTime, DateTimeImmutable). Bạn có thể đặt tiền tố cho chúng bằng dấu ?

Bây giờ bạn có thể dễ dàng đọc từ tệp CSV

Trong bài đăng này, tôi sẽ chỉ cho bạn cách sử dụng các hàm có sẵn của PHP để đọc và in nội dung của tệp CSV và chuyển đổi nó thành một mảng. Chúng tôi sẽ sử dụng

3
4 và
3
5 để đọc nội dung của tệp CSV, sau đó chúng tôi sẽ chuyển đổi nó thành một mảng bằng cách sử dụng các hàm
3
6 và
3
7

Giới thiệu

Lưu trữ tệp dữ liệu ở định dạng giá trị được phân tách bằng dấu phẩy (CSV) không phải là điều mới. Trên thực tế, đây là một trong những cách lưu trữ dữ liệu phổ biến nhất do tính đơn giản của nó—tệp CSV dễ đọc và ghi, đồng thời có thể mở trong trình soạn thảo văn bản cơ bản. Loại tệp này lưu trữ dữ liệu dạng bảng ở dạng văn bản thuần túy

Một ví dụ về một tập tin như vậy sẽ trông như thế này

1
_______5
2
Rehema,15,programmer
3
Beatrice,23,doctor

Dữ liệu này thể hiện thông tin về ba người, với các cột tương ứng với tên, tuổi và công việc của họ. Mặc dù đây là một định dạng dữ liệu đơn giản nhưng có thể khó đọc và sử dụng

Do đó, trong bài viết này, tôi sẽ hướng dẫn bạn cách mở tệp CSV bằng cách sử dụng các hàm gốc của PHP như

3
4, cách đọc nội dung của tệp này bằng cách sử dụng phương thức
3
5 và cuối cùng là cách chuyển đổi tệp CSV này thành một mảng bằng cách sử dụng

Tất nhiên, có một số gói của bên thứ ba mà chúng tôi có thể sử dụng để đạt được điều này, nhưng PHP có các hàm gốc tích hợp hoạt động rất tốt.  

điều kiện tiên quyết

Để tiếp tục với bài viết này, bạn sẽ cần những thứ sau

  • PHP phiên bản 5. 6 trở lên được cài đặt trên máy của bạn
  • môi trường phát triển cho PHP—XAMPP hoặc WampServer đều hoạt động tốt
  • một số hiểu biết cơ bản về các khái niệm PHP

Hãy bắt đầu nào

Hiển thị Tệp CSV dưới dạng Bảng

Trong phần này của bài viết, chúng ta sẽ đọc một tệp CSV đơn giản chứa một vài từ được phân tách bằng dấu phẩy. Để bắt đầu, chúng tôi sẽ sử dụng tệp đơn giản mà chúng tôi đã sử dụng ở trên và sau đó chúng tôi có thể tiếp tục sử dụng tệp lớn hơn ngẫu nhiên. Tất nhiên, bạn có thể tạo tệp của riêng mình bằng Microsoft Excel hoặc trình soạn thảo văn bản và lưu tệp đó với phần mở rộng CSV

Để đọc tệp, trước tiên chúng ta phải tìm tệp đó trong thư mục hoặc vị trí tệp được lưu trong đó. Để truy cập dễ dàng hơn, bạn có thể muốn lưu nó vào cùng thư mục nơi bạn có tệp chương trình của mình. Sau đó, chúng ta có thể sử dụng hàm

3
4 để đọc tệp

Sau đó, hàm

3
5 kiểm tra các trường CSV từ một dòng được phân tích cú pháp của tệp đang mở. Chức năng này yêu cầu ba tham số. xử lý tệp được trả về từ
3
4, độ dài tối đa của dòng được đọc và ký tự phân cách đặc biệt—mà chúng tôi gọi là "dấu phân cách". Đây có thể là dấu phẩy, dấu chấm phẩy hoặc bất kỳ dấu phân cách nào khác

Bây giờ chúng ta hãy thực hành

Tạo một tệp có tên csvtable. php ở đâu đó, nó có thể được cung cấp bằng WAMP hoặc XAMPP và sao chép đoạn mã sau

1
3
7
2
3
Elias,40,nurse
0
Elias,40,nurse
1
Elias,40,nurse
2
Elias,40,nurse
3
Elias,40,nurse
4
Elias,40,nurse
5
Elias,40,nurse
6
Elias,40,nurse
7
Elias,40,nurse
8
Elias,40,nurse
9
2
0
2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9
Rehema,15,programmer
0
Rehema,15,programmer
1
Rehema,15,programmer
2
Rehema,15,programmer
3
Rehema,15,programmer
4
Rehema,15,programmer
_______7___9_____7___7 1

Trong tệp này, trước tiên chúng tôi mở dữ liệu. csv, tệp này sẽ chứa một số dữ liệu được phân tách bằng dấu phẩy.

Elias,40,nurse
04 sẽ tìm tệp này trong cùng thư mục với csvtable. php. Tham số
Elias,40,nurse
05 yêu cầu
Elias,40,nurse
04 mở tệp dưới dạng chỉ đọc.  

Nếu tệp được mở thành công,

Elias,40,nurse
04 sẽ trả về một phần xử lý tệp có thể được sử dụng cho các thao tác đọc tệp khác. Nếu không, nó sẽ trả về
Elias,40,nurse
08. Do đó, chúng tôi kiểm tra xem xử lý tệp không phải là
Elias,40,nurse
08 trước khi tiếp tục đọc tệp

Tệp

3
5 sau đó tìm nạp các trường CSV từ tệp đã mở, mỗi lần một dòng. Chúng tôi yêu cầu
Elias,40,nurse
11 đọc tối đa 100 ký tự trên mỗi dòng và sử dụng dấu phân cách bằng dấu phẩy làm dấu phân cách. Các từ được tìm thấy trong tệp sau đó được lặp lại và in thành bảng HTML

Hàm cuối cùng là hàm

Elias,40,nurse
12, đóng tệp đã mở. Điều này giải phóng bộ nhớ được sử dụng bởi tệp đang mở và cho phép các quy trình khác có quyền truy cập vào tệp

mở csvtable. php thông qua máy chủ WAMP hoặc XAMPP localhost hoặc chạy

Elias,40,nurse
13 từ dòng lệnh để xem đầu ra sau

PHP phân tích cú pháp CSV
PHP phân tích cú pháp CSV
PHP phân tích cú pháp CSV

Phần đầu tiên của những gì chúng ta cần đạt được đã được thực hiện

Bây giờ, chúng ta sẽ chuyển đổi các trường CSV thô thành một mảng

Chuyển đổi tệp CSV thô thành một mảng

Bây giờ, có nhiều cách để tạo mảng. Chúng ta có thể sử dụng hàm

3
5 để tự động chuyển đổi nội dung của tệp CSV thành một mảng hoặc chúng ta có thể sử dụng
Elias,40,nurse
15

Sử dụng 35 để chuyển đổi tệp CSV thành một mảng

Điều này tương tự như ví dụ ở trên, nơi chúng tôi đã sử dụng

3
5 để hiển thị tệp CSV dưới dạng bảng HTML. Hãy xem điều này trong hành động. Tạo một tệp PHP với các nội dung sau

1
3
7
2
3
5
3
Elias,40,nurse
1
3
8
Elias,40,nurse
2
Elias,40,nurse
4
Beatrice,23,doctor
1
Elias,40,nurse
6
Beatrice,23,doctor
3
Elias,40,nurse
8
2
0
Rehema,15,programmer
1
2
2
2
4
Rehema,15,programmer
6
2
6
1
1
2
8
Rehema,15,programmer
8
Rehema,15,programmer
0
Rehema,15,programmer
2
1
6
Rehema,15,programmer
4
1
8
Rehema,15,programmer
5
3
70
Rehema,15,programmer
7
Rehema,15,programmer
9
3
73
3
0
3
75
3
76
3
77
3
78
3
79
2
0
3
1

Trong đoạn mã trên, chúng tôi đã tạo một hàm để đọc tệp CSV và chuyển đổi nó thành một mảng. Chúng tôi chuyển vào một tham số có tên và đường dẫn tệp tài liệu CSV

Sau đó, chúng tôi sử dụng chức năng

Elias,40,nurse
18 để kiểm tra xem đã đến cuối tệp chưa. Cho đến khi có, chúng ta cần phân tích cú pháp các trường CSV bằng cách sử dụng hàm
3
5, giống như chúng ta đã làm trong ví dụ trên

Các trường CSV được phân tích cú pháp từ tệp CSV được chuyển đổi thành một mảng bằng cách sử dụng hàm

3
5 và được thêm từng trường một vào biến
Elias,40,nurse
21

Cuối cùng, đừng quên sử dụng hàm

Elias,40,nurse
12 để đóng tệp đã mở trước khi thoát khỏi hàm

Sau đó, chúng tôi gọi hàm

Elias,40,nurse
23, chuyển tài liệu CSV dưới dạng tham số và tiếp theo, nội dung của tệp CSV được hiển thị như bên dưới

PHP phân tích cú pháp CSV
PHP phân tích cú pháp CSV
PHP phân tích cú pháp CSV

Sử dụng 36 để đọc tệp CSV

Ngoài ra, bạn có thể sử dụng hàm

3
6 để đọc tệp CSV thành một mảng. Để làm điều này, bạn sẽ sử dụng
Elias,40,nurse
26 làm chức năng gọi lại. Đây là một hàm PHP tích hợp được sử dụng để phân tích chuỗi CSV thành một mảng

Hàm gọi lại là một số mã thực thi được chuyển đến một đoạn mã khác dưới dạng đối số. Đối số này dự kiến ​​sẽ được gọi lại sau bởi mã mà nó được chuyển đến

Đây là cách chúng tôi có thể sử dụng

Elias,40,nurse
15 và
Elias,40,nurse
26 để ánh xạ dữ liệu CSV của mình thành một mảng

1
______17
2
2
5
3
3
75
Elias,40,nurse
1
3
77
Elias,40,nurse
2
3
79
Elias,40,nurse
4
3
1

Đoạn mã trên sử dụng phương pháp

Elias,40,nurse
29 để đọc tệp CSV thành một mảng các dòng. Sau đó, với bản đồ mảng, nó gọi
3
7 trên mỗi dòng và lưu trữ dữ liệu cho toàn bộ tệp trong
Elias,40,nurse
31. Hàm
3
7 phân tích nội dung trường CSV của mỗi dòng thành một mảng

Đầu ra của đoạn mã trên sẽ giống như trên

Lưu ý rằng mã được yêu cầu ít hơn bao nhiêu khi sử dụng trực tiếp hàm

Elias,40,nurse
29 và hàm
3
6?

Phần kết luận

Trong bài viết này, bạn đã học cách xử lý tệp CSV trong PHP bằng cách đọc và hiển thị nội dung của nó bằng cách sử dụng các hàm gốc của PHP như

3
4 và
3
5 và chuyển đổi các trường CSV thành một mảng. Tôi đã chỉ cho bạn hai cách để làm điều này.  

Làm cách nào để phân tích tệp CSV trong PHP?

Mở tệp PHP và viết đoạn mã sau vào đó, mã này sẽ được giải thích trong các bước sau. .
Mở tập dữ liệu của CSV bằng chức năng fopen. $open = fopen("tên tệp. .
Đọc một dòng bằng hàm fgetcsv(). .
Sử dụng một vòng lặp để lặp lại trong mỗi hàng dữ liệu. .
Đóng tệp đó bằng phương thức PHP fclose()

Làm cách nào để đọc chuỗi CSV trong PHP?

Để phân tích chuỗi CSV thành một mảng trong PHP, gọi hàm chuỗi str_getcsv() và chuyển chuỗi CSV làm đối số . str_getcsv() Hàm chuỗi lấy chuỗi làm đối số và phân tích cú pháp chuỗi đã cho cho các trường ở định dạng CSV và trả về một mảng.

Làm cách nào để đọc từng dòng tệp CSV trong PHP?

Chúng tôi sẽ sử dụng fopen() và fgetcsv() để đọc nội dung của tệp CSV , sau đó chúng tôi sẽ chuyển đổi tệp đó .

Làm cách nào để gọi tệp CSV trong PHP?

Làm cách nào để nhập và xuất CSV bằng cách sử dụng php và MySQL? .
Phê duyệt hồ sơ đã gửi, cho dù là tệp CSV quan trọng
Kiểm tra trạng thái truyền tệp CSV bằng hàm is_uploaded_file() của PHP
Truy cập tệp CSV bằng hàm PHP fopen()
Phân tích dữ liệu từ bản ghi CSV sử dụng hàm PHP fgetcsv()