php怎样创建csv文件,如何使用PHP创建CSV文件?(代码示例)
CSV(逗號分隔值)是在應(yīng)用程序之間傳輸表格數(shù)據(jù)的最常用方法之一;創(chuàng)建將數(shù)據(jù)導(dǎo)出到CSV的代碼在許多應(yīng)用程序中非常有用。下面本篇文章就來帶大家了解如何使用PHP創(chuàng)建CSV文件,希望對大家有所幫助。
下面就通過代碼示例來具體介紹一下:
使用靜態(tài)數(shù)據(jù)創(chuàng)建CSV文件
如果要將數(shù)據(jù)存儲到csv文件中,則可以使用與以下類似的代碼:
//?創(chuàng)建并打開“demosaved.csv”文件進(jìn)行寫入
$file=fopen('demosaved.csv','w');
//?保存列標(biāo)題
fputcsv($file,array('Column?1','Column?2','Column?3','Column?4','Column?5'));
//?樣本數(shù)據(jù),這可以從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')
);
//?保存每一行數(shù)據(jù)
foreach($dataas$row)
{
fputcsv($file,$row);
}
//?關(guān)閉文件
fclose($file);
?>
代碼說明:
第3行:打開文件,文件名為“demosaved.csv”,用于書寫。確保服務(wù)器可以寫入保存此文件的位置
第6行:添加列標(biāo)題。如果不想要任何列標(biāo)題,可以跳過此步驟。
第9-15行:表示要存儲在文件中的數(shù)據(jù)。如果你想從mysql中獲取數(shù)據(jù),你必須用代碼來連接數(shù)據(jù)庫并獲取數(shù)據(jù),進(jìn)而替換這些行來
第17-21行:遍歷每行數(shù)據(jù)并保存數(shù)據(jù)
第24行:關(guān)閉文件。在我們完成將所有數(shù)據(jù)寫入文件后,需要把文件關(guān)閉。
從mysql獲取數(shù)據(jù)來創(chuàng)建并自動下載CSV文件
//?設(shè)置輸出標(biāo)頭,以便下載文件
header('Content-type:?text/csv');
header('Content-Disposition:?attachment;?filename="demo.csv"');
//?不緩存文件
header('Pragma:?no-cache');
header('Expires:?0');
//?創(chuàng)建連接到輸出流的文件指針
$file=fopen('php://output','w');
//?打開數(shù)據(jù)庫連接
$link=?mysqli_connect('localhost','my_user','my_password','my_db');
//查詢數(shù)據(jù)庫
$query='SELECT?field1,?field2,?field3,?field4,?field5?FROM?table';
if($rows=?mysqli_query($link,$query))
{
//?保存每一行數(shù)據(jù)
while($row=?mysqli_fetch_assoc($rows))
{
fputcsv($file,$row);
}
//自由結(jié)果集
mysqli_free_result($result);
}
//?關(guān)閉連接
mysqli_close($link);
?>
代碼說明:
因為我們要下載文件,所以我們必須發(fā)送一些頭文件(第3行和第4行),告訴瀏覽器下載該文件。
第3行:告訴瀏覽器內(nèi)容的MIME類型是text / csv,因為我們要發(fā)送一個csv文件
第4行:發(fā)送標(biāo)頭“Content-Disposition”,其值為“attachment”,文件名為“demo.csv”。這將告訴瀏覽器下載名為“demo.csv”的文件,而不是顯示它。
第7行和第8行:告訴瀏覽器不要緩存文件。如果我們發(fā)送多個同名文件,這很有用,否則這不是必需的
第11行:表示打開文件指針以發(fā)送數(shù)據(jù)
第14行~第30行:從mysql獲取數(shù)據(jù)
注:需要確保更改數(shù)據(jù)庫的連接參數(shù)和查詢。此外,該數(shù)據(jù)庫相關(guān)代碼僅是一個示例。在實際應(yīng)用程序中,它可能位于不同的文件中,并且還應(yīng)該有錯誤處理。
總結(jié)
以上是生活随笔為你收集整理的php怎样创建csv文件,如何使用PHP创建CSV文件?(代码示例)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Python】/ 和 // 的区别
- 下一篇: 【Leetcode】两个有序数组,求第k