Làm cách nào để phân tích cú pháp tệp CSV bằng PHP?
❮ Tham khảo hệ thống tập tin PHP
Ví dụĐọc và xuất một dòng từ tệp CSV đang mở Show
$file = fopen("danh bạ. csv","r"); Định nghĩa và cách sử dụngHàm fgetcsv() phân tích cú pháp một dòng từ tệp đang mở, kiểm tra các trường CSV Mẹo. Xem thêm hàm fputcsv() cú phápfgetcsv(tệp, độ dài, dấu tách, bao vây) Giá trị tham sốTham sốTệp mô tảBắt buộc. Chỉ định tệp đang mở để trả về và phân tích cú pháp một dòng fromlengthOptional. Chỉ định độ dài tối đa của một dòng. Phải lớn hơn dòng dài nhất (bằng ký tự) trong tệp CSV. Bỏ qua tham số này (hoặc đặt thành 0) độ dài dòng không bị giới hạn, chậm hơn một chút. Ghi chú. Tham số này là bắt buộc trong các phiên bản trước PHP 5separatorOptional. Chỉ định dấu tách trường. Mặc định là dấu phẩy ( , ) bao vâyTùy chọn. Chỉ định ký tự bao vây trường. Mặc định là "escapeOptional. Chỉ định ký tự thoát. Mặc định là "\\"chi tiết kỹ thuậtGiá trị trả về. Một mảng có các trường CSV khi thành công, NULL nếu tệp không hợp lệ được cung cấp, FALSE đối với các lỗi khác và trên Phiên bản EOFPHP. 4. 0+An toàn nhị phân. Có, trong PHP 4. 3. Nhật ký thay đổi 5PHP. PHP5. 3 - Đã thêm tham số thoátThêm ví dụVí dụĐọc và xuất toàn bộ nội dung của tệp CSV $file = fopen("danh bạ. csv","r"); trong khi(. feof($file)) fclose($file); ❮ Tham khảo hệ thống tập tin PHP 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 34 và 35 để đọ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 36 và 37 Giới thiệuLư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 Elias,40,nurse 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ư 34, cách đọc nội dung của tệp này bằng cách sử dụng phương thức 35 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
Hãy bắt đầu nào Hiển thị Tệp CSV dưới dạng BảngTrong 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 34 để đọc tệp Sau đó, hàm 35 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ừ 34, độ 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
2 3 Elias,40,nurse0 Elias,40,nurse1 Elias,40,nurse2 Elias,40,nurse3 Elias,40,nurse4 Elias,40,nurse5 Elias,40,nurse6 Elias,40,nurse7 Elias,40,nurse8 Elias,40,nurse9 20 21 22 23 24 25 26 27 28 29 Rehema,15,programmer0 Rehema,15,programmer1 Rehema,15,programmer2 Rehema,15,programmer3 Rehema,15,programmer4 Rehema,15,programmer5 Rehema,15,programmer6 Rehema,15,programmer7 Rehema,15,programmer8 Rehema,15,programmer9 30 31 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,nurse04 sẽ tìm tệp này trong cùng thư mục với csvtable. php. Tham số Elias,40,nurse05 yêu cầu Elias,40,nurse04 mở tệp dưới dạng chỉ đọc. Nếu tệp được mở thành công, Elias,40,nurse04 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,nurse08. Do đó, chúng tôi kiểm tra xem xử lý tệp không phải là Elias,40,nurse08 trước khi tiếp tục đọc tệp Tệp 35 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,nurse11 đọ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,nurse12 đó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,nurse13 từ dòng lệnh để xem đầu ra sau 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ảngBây giờ, có nhiều cách để tạo mảng. Chúng ta có thể sử dụng hàm 35 để 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,nurse15 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 35 để 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
2 35 3 Elias,40,nurse1 38 Elias,40,nurse2 Elias,40,nurse4 Beatrice,23,doctor1 Elias,40,nurse6 Beatrice,23,doctor3 Elias,40,nurse8 20 Rehema,15,programmer1 22 24 Rehema,15,programmer6 26 11 28 Rehema,15,programmer8 Rehema,15,programmer0 Rehema,15,programmer2 16 Rehema,15,programmer4 18 Rehema,15,programmer5
0Rehema,15,programmer7 Rehema,15,programmer9
330
5
6
7
8
920 31 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 ta sử dụng hàm Elias,40,nurse18 để 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 35, 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 35 và được thêm từng trường một vào biến Elias,40,nurse21 Cuối cùng, đừng quên sử dụng hàm Elias,40,nurse12 để đóng tệp đã mở trước khi thoát khỏi hàm Sau đó, chúng tôi gọi hàm Elias,40,nurse23, 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 Sử dụng 36 để đọc tệp CSVNgoài ra, bạn có thể sử dụng hàm 36 để đọc tệp CSV thành một mảng. Để làm điều này, bạn sẽ sử dụng Elias,40,nurse26 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,nurse15 và Elias,40,nurse26 để ánh xạ dữ liệu CSV của mình thành một mảng 1
2 25_______0_______
5_______5_______1
7Elias,40,nurse2
9Elias,40,nurse4 31 Đoạn mã trên sử dụng phương pháp Elias,40,nurse29 để đọc tệp CSV thành một mảng các dòng. Sau đó, với bản đồ mảng, nó gọi 37 trên mỗi dòng và lưu trữ dữ liệu cho toàn bộ tệp trong Elias,40,nurse31. Hàm 37 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,nurse29 và hàm 36? Phần kết luậnTrong 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ư 34 và 35 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 để tải lên và phân tích tệp CSV trong PHP?Để tải tệp CSV lên, hãy sử dụng thẻ html đầu vào làm giá trị loại “tệp”. . Làm cách nào để trích xuất CSV thành mảng trong PHP?Ánh xạ str_getcsv() để đọc CSV và chuyển đổi nó thành một mảng PHP
. Sau đó, array_map đặt hàm str_getcsv() làm lệnh gọi lại để lặp lại mảng các hàng của tệp CSV. str_getcsv() nhập dữ liệu hàng CSV vào 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 nó thành một mảng bằng cách sử dụng array_map() và . .
Làm cách nào để tải tệp CSV bằng 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() |