在網站開發中,我們經常需要將數據導出到CSV中,來實現數據的備份或是交互性的交換。而php提供了非常方便的操作csv文件的方法,本文將介紹如何使用php編寫csv導出功能。
首先我們需要明確一個概念,CSV即是Comma-Separated Values,也就是用逗號分隔的值文件,其實就是一種文本文件,可以用Excel等軟件來打開編輯。接下來我們來看看如何用php來實現導出。
1. 準備好要導出的數據
在開始導出操作之前,我們需要先準備好要導出的數據,可以是從數據庫中查詢出來的數據,也可以是手動填寫的數據。這兒我們舉一個簡單的例子,如下:
```
$data = array(
array('張三', '男', '22', '上海'),
array('李四', '女', '21', '北京'),
array('王五', '男', '23', '廣州'),
);
```
上述數據為一個二維數組,每個子數組代表一條數據。
2. 創建csv文件并寫入數據
接下來我們開始創建csv文件并將數據寫入其中:
```
$csv_file = "test.csv";
$fp = fopen($csv_file, 'w');
foreach ($data as $line) {
fputcsv($fp, $line);
}
fclose($fp);
```
第一行指定csv文件名,并創建該文件的文件句柄,將文件模式指定為“寫入”。然后我們采取循環的方式,將數據寫入文件中。其中fputcsv函數的第一個參數為文件句柄,第二個參數為要寫入的行數據,也就是使用逗號分隔的值。
3. 輸出csv文件
在實際應用中,我們可能需要將文件直接輸出到瀏覽器,以便用戶可以進行下載。使用php的輸出與重定向,可以輕松實現:
```
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=".basename($csv_file));
header("Pragma: no-cache");
header("Expires: 0");
readfile($csv_file);
```
如上所示,將Content-Type設置為vnd.ms-excel,告訴瀏覽器輸出的是一個Excel文件。設置Content-Disposition header中的attachment值,指定輸出的文件以附件形式下載。最后使用readfile函數輸出文件內容。
至此,我們就成功地實現了一個簡單的csv導出功能。通過使用這種方式,我們不僅可以很方便地備份數據,還可以基于csv格式,和其他系統進行數據的交互。
上一篇php csv 逐行
下一篇php csv導入