CSV [các giá trị phân tách bằng dấu phẩy] là định dạng tệp được sử dụng rộng rãi và được hỗ trợ rộng rãi nhất để chuyển dữ liệu bảng vào văn bản thuần túy.
Thêm khả năng xuất dữ liệu trong CSV có thể tải xuống là một tính năng rất hữu ích và trở nên phổ biến trong mỗi trang web.
Có phải là nó không?
Bạn có thể đã thấy rất nhiều hướng dẫn để thực hiện tính năng xuất CSV. Nhưng, luôn có một sự nhầm lẫn do thực tế là việc thực hiện nó thực tế có thể gặp nhiều lỗi và những lỗi đó không thể dễ dàng xác định và giải quyết bởi một nhà phát triển người mới.
Do đó, tôi đã đưa ra một bài viết từng bước sẽ giúp bạn triển khai tính năng xuất CSV có thể tải xuống bằng cách sử dụng PHP một cách dễ dàng và hiệu quả.
Tôi đã quản lý 6 bước đơn giản để xuất dữ liệu sang CSV. Điều này sẽ giúp bạn dễ dàng thực hiện tính năng xuất CSV trong các khung và hệ thống quản lý nội dung dựa trên PHP hoặc PHP của bạn.
Bước 1: Tạo tiêu đề
Trước hết, chúng ta cần tạo một mảng tiêu đề cho tệp CSV được tạo, vì chúng ta sẽ cần xác định nội dung nào nó đang hiển thị ở định dạng bảng.
$header_args = array[ ‘ID’, ’Name’, ’Email’ ];
Bước 2: Buộc bộ đệm đầu ra vào CSV đầu ra với tên tệp cụ thể
Chúng tôi sẽ tiến hành xuất tệp CSV để tải xuống cho chúng tôi cần thêm các tiêu đề PHP như dưới đây:
header['Content-Type: text/csv; charset=utf-8']; header['Content-Disposition: attachment; filename=csv_export.csv'];
Lưu ý: Nếu bạn sẽ không thêm tiêu đề PHP như trên thì bạn sẽ không thể tự động tải xuống tệp CSV được tạo, thay vào đó, nó sẽ chỉ hiển thị nội dung. If you will not add the PHP header as above then you will not be able to automatically download the CSV file generated, rather it will only display the content.
Bước 3: Tạo tệp bằng PHP
Bây giờ, chúng tôi sẽ tạo một con trỏ tệp để mở một tệp có thể ghi sẽ kết nối với luồng đầu ra trước khi tạo tệp CSV.
$output = fopen[ 'php://output', 'w' ];
Bước 4: Dọn dẹp bộ đệm đầu ra
Chúng tôi sẽ cần làm sạch nội dung của bộ đệm đầu ra nếu có để nó không được ghi vào tệp CSV hoặc không được lặp lại sớm hơn nội dung thực tế tạo ra Cannot Modify Header Information
Error.
ob_end_clean[];
Bước 5: Viết tiêu đề vào tệp CSV
Sau đó, chúng tôi sẽ viết mảng của các đối số tiêu đề $ header_args mà chúng tôi đã tạo ở trên vào tệp CSV.
fputcsv[$output, $header_args];
Bước 6: Viết nội dung thực tế vào tệp CSV
Sau khi viết tiêu đề vào tệp CSV, thời gian để viết nội dung thực tế vào tệp CSV sẽ xuất tất cả dữ liệu vào tệp CSV
$data = array[ '0' => array[ '1', 'Test 1', '[email protected]' ], '1' => array[ '2', 'Test 2', '[email protected]' ], '2' => array[ '3', 'Test 3', '[email protected]' ], ]; foreach[$data AS $data_item]{ fputcsv[$output, $data_item]; } exit;
Đó là nó!
Mã kết hợp
Tôi đã kết hợp mã thành một tệp để bạn có thể sử dụng trực tiếp và chơi với nó để biết hoạt động của tính năng xuất CSV như thế nào. Bạn cũng có thể thử thay đổi nội dung tĩnh với nội dung động đến từ cơ sở dữ liệu.
Lỗi phổ biến cho tính năng xuất CSV
Tôi đã liệt kê một số vấn đề phổ biến mà nhà phát triển người mới phải đối mặt trong quá trình phát triển tính năng xuất khẩu CSV. Sử dụng phần này, bạn sẽ luôn nhận thức được các vấn đề hoặc lỗi phải đối mặt để bạn có thể thực hiện các bước phòng ngừa trong khi phát triển tính năng xuất CSV bằng PHP.
Hãy cho tôi biết thông qua phần bình luận ở cuối bài viết, nếu có bất kỳ lỗi nào mà bạn đã gặp phải và nó không được liệt kê dưới đây để nhận xét của bạn có thể giúp những người đọc người mới khác.
1. Hoàn thành HTML của trang được ghi vào tệp CSV
Lỗi này sẽ in toàn bộ HTML của trang từ ____7 đến ________ 8 & nbsp; đây không phải là nội dung thực tế bạn muốn viết cho CSV và truy tìm vấn đề này là phần thực sự khó khăn.
Nguyên nhân phổ biến
- Hoặc là ____ hoặc ________ 10 & nbsp; bị thiếu sau khi ghi dữ liệu thành công vào tệp CSV.
- Bộ đệm đầu ra không được làm sạch trước khi ghi dữ liệu vào tệp CSV.
Sửa chữa
- Don Tiết bỏ lỡ để sử dụng ____9 hoặc ____1010 sau khi bạn đã viết thành công dữ liệu của mình vào tệp CSV.
- Đảm bảo rằng bạn đã sử dụng
header['Content-Type: text/csv; charset=utf-8']; header['Content-Disposition: attachment; filename=csv_export.csv'];
3 trước khi ghi dữ liệu vào tệp CSV để mọi dữ liệu bị cắt xén hoặc HTML sẽ không được thêm vào tệp CSV.
2. Lỗi: Không thể sửa đổi thông tin tiêu đề - Tiêu đề đã được gửi
Lỗi này có nhiều nguyên nhân có thể. Ngoài ra, lỗi này có thể được giải quyết với nhiều cách khác nhau tùy thuộc vào lĩnh vực nguyên nhân. Tuy nhiên, tôi đã chỉ cho bạn khu vực nguyên nhân và giải pháp phổ biến nhất cho lỗi này.
Nguyên nhân phổ biến
Hoặc là ____ hoặc ________ 10 & nbsp; bị thiếu sau khi ghi dữ liệu thành công vào tệp CSV.
Sửa chữa
Don Tiết bỏ lỡ để sử dụng ____9 hoặc ____1010 sau khi bạn đã viết thành công dữ liệu của mình vào tệp CSV.
Đảm bảo rằng bạn đã sử dụng header['Content-Type: text/csv; charset=utf-8'];
header['Content-Disposition: attachment; filename=csv_export.csv'];
3 trước khi ghi dữ liệu vào tệp CSV để mọi dữ liệu bị cắt xén hoặc HTML sẽ không được thêm vào tệp CSV.
2. Lỗi: Không thể sửa đổi thông tin tiêu đề - Tiêu đề đã được gửi
Lỗi này có nhiều nguyên nhân có thể. Ngoài ra, lỗi này có thể được giải quyết với nhiều cách khác nhau tùy thuộc vào lĩnh vực nguyên nhân. Tuy nhiên, tôi đã chỉ cho bạn khu vực nguyên nhân và giải pháp phổ biến nhất cho lỗi này.
Theo nghiên cứu của tôi, 8 trong số 10 dự án có tính năng xuất khẩu CSV không phân biệt loại dự án.
Hy vọng một chút thông tin này sẽ giúp!