CSV(逗號分隔值)是在應用程式之間傳輸表格資料的最常用方法之一;創建將資料匯出到CSV的程式碼在許多應用程式中非常有用。以下這篇文章就帶大家了解如何使用PHP建立CSV文件,希望對大家有幫助。
以下就透過程式碼範例來具體介紹一下:
#使用靜態資料建立CSV檔案
#如果要將資料儲存到csv檔案中,可以使用與下列類似的程式碼:
<?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); ?>
程式碼說明
第3行:打開文件,文件名為“demosaved.csv”,用於書寫。確保伺服器可以寫入儲存此檔案的位置
第6行:新增列標題。如果不想要任何列標題,可以跳過此步驟。
第9-15行:表示要儲存在檔案中的資料。如果你想從mysql中獲取數據,你必須用程式碼來連接資料庫並獲取數據,進而替換這些行來
第17-21行:遍歷每行數據並保存數據
第24行:關閉文件。在我們完成將所有資料寫入檔案後,需要把文件關閉。
從mysql取得資料來建立並自動下載CSV檔案
#<?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); ?>
程式碼說明:
# #因為我們要下載文件,所以我們必須傳送一些頭檔(第3行和第4行),告訴瀏覽器下載該文件。 第3行:告訴瀏覽器內容的MIME類型是text / csv,因為我們要傳送一個csv檔第4行:傳送標頭“Content-Disposition”,其值為“attachment”,檔案名稱為“demo.csv”。這將告訴瀏覽器下載名為“demo.csv”的文件,而不是顯示它。 第7行和第8行:告訴瀏覽器不要快取檔案。如果我們發送多個同名文件,這很有用,否則這不是必需的第11行:表示打開文件指標以發送資料#第14行~第30行:從mysql取得資料註:需要確保更改資料庫的連接參數和查詢。此外,該資料庫相關程式碼僅是一個範例。在實際應用程式中,它可能位於不同的檔案中,並且還應該有錯誤處理。
以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。更多精彩內容大家可以追蹤php中文網相關教學欄位! ! !以上是如何使用PHP建立CSV檔案? (程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!