Home > Article > Backend Development > How to create CSV file using PHP? (code example)
CSV (Comma Separated Values) is one of the most common methods of transferring tabular data between applications; creating code to export data to CSV can be useful in many applications. The following article will show you how to use PHP to create CSV files. I hope it will be helpful to you.
The following is a detailed introduction through code examples:
Creating CSV files using static data
If you want to store the data into a csv file, you can use code similar to the following:
<?php // 创建并打开“demosaved.csv”文件进行写入 $file = fopen('demosaved.csv', 'w'); // 保存列标题 fputcsv($file, array('Column 1', 'Column 2', 'Column 3', 'Column 4', 'Column 5')); // 样本数据,这可以从MySQL中获取 $data = array( array('Data 11', 'Data 12', 'Data 13', 'Data 14', 'Data 15'), array('Data 21', 'Data 22', 'Data 23', 'Data 24', 'Data 25'), array('Data 31', 'Data 32', 'Data 33', 'Data 34', 'Data 35'), array('Data 41', 'Data 42', 'Data 43', 'Data 44', 'Data 45'), array('Data 51', 'Data 52', 'Data 53', 'Data 54', 'Data 55') ); // 保存每一行数据 foreach ($data as $row) { fputcsv($file, $row); } // 关闭文件 fclose($file); ?>
Code description
Line 3: Open File, named "demosaved.csv", for writing. Make sure the server can write to the location where this file is saved
Line 6: Add column headers. If you don't want any column headers, you can skip this step.
Lines 9-15: Indicates the data to be stored in the file. If you want to get data from mysql, you must use code to connect to the database and get the data, and then replace these lines to
Lines 17-21: Iterate through each row of data and save the data
Line 24: Close the file. After we finish writing all the data to the file, we need to close the file.
Get data from mysql to create and automatically download CSV files
<?php // 设置输出标头,以便下载文件 header('Content-type: text/csv'); header('Content-Disposition: attachment; filename="demo.csv"'); // 不缓存文件 header('Pragma: no-cache'); header('Expires: 0'); // 创建连接到输出流的文件指针 $file = fopen('php://output', 'w'); // 打开数据库连接 $link = mysqli_connect('localhost', 'my_user', 'my_password', 'my_db'); //查询数据库 $query = 'SELECT field1, field2, field3, field4, field5 FROM table'; if ($rows = mysqli_query($link, $query)) { // 保存每一行数据 while ($row = mysqli_fetch_assoc($rows)) { fputcsv($file, $row); } //自由结果集 mysqli_free_result($result); } // 关闭连接 mysqli_close($link); ?>
Code Description:
Because we want to download the file, we have to send some headers (lines 3 and 4) to tell the browser to download the file.
Line 3: Tell the browser that the MIME type of the content is text/csv, since we are sending a csv file
Line 4: Send the header "Content-Disposition" with its value is "attachment" and the file name is "demo.csv". This will tell the browser to download a file called "demo.csv" instead of displaying it.
Lines 7 and 8: Tell the browser not to cache the file. This is useful if we send multiple files with the same name, otherwise this is not necessary
Line 11: Represents opening the file pointer to send data
Line 14 ~ Line 30: From mysql Get data
Note:You need to make sure to change the connection parameters and queries of the database. Additionally, this database-related code is just an example. In a real application it might be in a different file and there should also be error handling.
The above is the entire content of this article, I hope it will be helpful to everyone's study. For more exciting content, you can pay attention to the relevant tutorial columns of the PHP Chinese website! ! !
The above is the detailed content of How to create CSV file using PHP? (code example). For more information, please follow other related articles on the PHP Chinese website!