Hướng dẫn php create csv file and download - php tạo tệp csv và tải xuống

Bạn có thể sử dụng fputcsv () được tích hợp cho các mảng của mình để tạo các dòng CSV chính xác từ mảng của bạn, vì vậy bạn sẽ phải lặp lại và thu thập các dòng, như thế này:

$f = fopen("tmp.csv", "w");
foreach ($array as $line) {
    fputcsv($f, $line);
}

Để làm cho các trình duyệt cung cấp hộp thoại "Lưu AS", bạn sẽ phải gửi các tiêu đề HTTP như thế này (xem thêm về tiêu đề này trong RFC):

header('Content-Disposition: attachment; filename="filename.csv";');

Để tất cả chúng cùng nhau:

function array_to_csv_download($array, $filename = "export.csv", $delimiter=";") {
    // open raw memory as file so no temp files needed, you might run out of memory though
    $f = fopen('php://memory', 'w'); 
    // loop over the input array
    foreach ($array as $line) { 
        // generate csv lines from the inner arrays
        fputcsv($f, $line, $delimiter); 
    }
    // reset the file pointer to the start of the file
    fseek($f, 0);
    // tell the browser it's going to be a csv file
    header('Content-Type: text/csv');
    // tell the browser we want to save it instead of displaying it
    header('Content-Disposition: attachment; filename="'.$filename.'";');
    // make php send the generated csv lines to the browser
    fpassthru($f);
}

Và bạn có thể sử dụng nó như thế này:

array_to_csv_download(array(
  array(1,2,3,4), // this array is going to be the first row
  array(1,2,3,4)), // this array is going to be the second row
  "numbers.csv"
);

Cập nhật: Thay vì php://memory, bạn cũng có thể sử dụng php://output cho bộ mô tả tệp và loại bỏ việc tìm kiếm và như vậy:
Instead of the php://memory you can also use the php://output for the file descriptor and do away with the seeking and such:

function array_to_csv_download($array, $filename = "export.csv", $delimiter=";") {
    header('Content-Type: application/csv');
    header('Content-Disposition: attachment; filename="'.$filename.'";');

    // open the "output" stream
    // see http://www.php.net/manual/en/wrappers.php.php#refsect2-wrappers.php-unknown-unknown-unknown-descriptioq
    $f = fopen('php://output', 'w');

    foreach ($array as $line) {
        fputcsv($f, $line, $delimiter);
    }
}   

Định dạng tệp các giá trị được phân tách bằng dấu phẩy (CSV) là phương tiện được hỗ trợ rộng rãi nhất để biểu diễn dữ liệu bảng. Bao gồm tính năng xuất CSV trong ứng dụng web cho phép dữ liệu của nó được xử lý bởi các ứng dụng khác, tăng giá trị của nó cho người dùng.

Các tiêu đề HTTP đầu ra của dòng 1 và 2 tuyên bố rằng nội dung là dữ liệu CSV được mã hóa UTF-8 và trình duyệt sẽ cung cấp để tải xuống. Tiêu đề Content-Disposition không chỉ đảm bảo tệp được cung cấp dưới dạng tải xuống thay vì được hiển thị trong trình duyệt mà còn cho phép một tên tệp được đề xuất - ____10 trong ví dụ này - thay vì để lại trình duyệt để tạo tên tệp dựa trên URL.

Dòng 4 tạo một con trỏ tệp có thể được sử dụng để ghi vào luồng đầu ra PHP, sau đó các dòng 5 và 6 sử dụng hàm

header('Content-Disposition: attachment; filename="filename.csv";');
1 để xuất một hàng tiêu đề và một hàng dữ liệu.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=users.csv');

$output = fopen('php://output', 'w');
fputcsv($output, ['ID', 'E-mail address', 'Name']);

$connection = new mysqli('host', 'user', 'password', 'database');
$rows = $connection->query(
  'SELECT user_id,email_address,name FROM users',
  MYSQLI_USE_RESULT
);
while ($row = $rows->fetch_row()) {
  fputcsv($output, $row);
}

Dòng 7 đến 11 truy vấn cơ sở dữ liệu cho danh sách người dùng. Cờ

header('Content-Disposition: attachment; filename="filename.csv";');
2 tránh được một bản sao thêm dữ liệu được giữ trong bộ nhớ, cho phép xuất các tệp CSV lớn hơn. Các dòng 12 đến 14 sau đó xuất mỗi hàng được trả về bởi truy vấn.

Làm cách nào để tạo tệp CSV và tải xuống tập lệnh PHP?

Tệp PHP xử lý quá trình tải xuống tệp CSV và phát hành CSV bằng PHP và MySQL ...
Lấy dữ liệu từ cơ sở dữ liệu MySQL ..
Tạo một con trỏ tệp bằng hàm fopen () ..
Chỉ định các cột tiêu đề và đặt dữ liệu vào tệp CSV ..
Đầu ra từng hàng của dữ liệu, dòng định dạng dưới dạng CSV và ghi vào tệp con trỏ ..

Làm cách nào để tải xuống tệp CSV?

Chuyển đến Tệp> Lưu dưới dạng. Nhấp vào Duyệt. Trong hộp thoại Lưu dưới dạng, trong Save As Type, chọn định dạng tệp văn bản cho bảng tính; Ví dụ: nhấp vào Text (Tab Delimited) hoặc CSV (dấu hiệu dấu hiệu).

Làm cách nào để xuất cơ sở dữ liệu MySQL từ tệp CSV bằng PHP?

Cách nhập và xuất các tệp CSV bằng PHP và MySQL..
Tạo cơ sở dữ liệu trong MySQL ..
Nhập CSV vào MySQL trong PHP ..
Hiển thị các bản ghi đã lưu ..
Xuất MySQL sang CSV với PHP ..

Làm cách nào để lưu tệp CSV vào một thư mục cụ thể trong PHP?

Cách tạo tệp CSV và lưu nó vào thư mục với PHP..
fopen ('mycsv. ....
fputcsv ($ f, ["mycell1", "mycell2", "mycell3"]) sử dụng biến $ f cho phép hàm truyền trong mảng dữ liệu hoặc ghi dữ liệu tương tự vào tệp ..
Fclose ($ f) Đóng tệp sau khi chúng tôi viết xong vào tệp ..