在PHP中我們可以使用fgetcsv()函數來解析CSV文件,它可以自動解析給定資源中的CSV欄位。以下這篇文章就來給大家具體介紹一下使用PHP處理CSV檔案的方法,希望對大家有幫助。 【影片教學推薦:PHP教學】
什麼是CSV檔?
CSV檔案基本上只是一個符合特定格式的文字文件,一種用來儲存資料的純文字檔案格式,通常用於電子表格或資料庫軟體中。在CSV檔案中,所有數值都以逗號分隔(因此,首字母縮寫背後的含義:逗號分隔值),而各行則由換行符號分隔。
總結:CSV檔案由逗號、資料和換行符號組成;換行符號分隔行和逗號分隔值/列。
CSV檔案的範例,將其命名為example.csv:
Ted,USA,21 Lisa,UK,23 Michael,USA,20 Louise,Ireland,30
可以看出:每一行都用逗號分隔開;第一列是人的姓名,第二列是人的國家,最後一列是人的年齡;每個人都被換行符號分隔。
如何使用PHP處理CSV檔案?
php解析CSV檔案可以使用fgetcsv()函數;函數從開啟的檔案中解析一行,校驗 CSV 欄位。
語法如下:
fgetcsv("filename.csv", 1000, ",");
filename.csv:CSV檔案的名稱。
1000:表示最長線的長度。
“,”:表示可選的分隔符號參數。預設當然是逗號(,)。
為了使用fgetcsv()函數,我們需要先用fopen()函數開啟檔案進行讀取,然後再用fclose()函數關閉檔案來結束程式碼。在兩者之間,我們使用一個循環,分別解析CSV每一行。
下面就來簡單介紹一下如何處理:
1、用fopen()函數開啟檔案並進行閱讀:
$h = fopen("filename.csv", "r");
使用「r 」模式開啟檔案並進行讀取;變數$h會從檔案中儲存資料的處理。
2、使用fgetcsv()函數逐行讀取CSV檔案的數據,並將每一行資料單獨儲存到名為$ data的陣列中。
$data = fgetcsv($h, 1000, ",");
為了讀取所有行,我們需要使用while循環:
while (($data = fgetcsv($h, 1000, ",")) !== FALSE) { // 读取数据 }
3、需要關閉該檔案
fclose($h);
結合上面的3個步驟:
<?php // 打开文件并阅读 if (($h = fopen("example.csv", "r")) !== FALSE) { // 将每行数据都转换为本地$data变量并储存 while (($data = fgetcsv($h, 1000, ",")) !== FALSE) { //输出每行数据 var_dump($data); } // 关闭文件 fclose($h); } ?>
輸出:
程式碼範例:將CSV檔案轉換為PHP多維數組
以下程式碼產生一個多維數組( $ the_big_array),其每個項目都由一個從CSV檔案中的單行轉換而來的陣列組成。
<?php $filename = 'example.csv'; // 用于保存所有数据的多维(嵌套)数组 $the_big_array = []; // 打开文件并阅读 if (($h = fopen("{$filename}", "r")) !== FALSE) { // 文件中的每一行数据都被转换为我们调用的单个数组$data // 数组的每个元素以逗号分隔 while (($data = fgetcsv($h, 1000, ",")) !== FALSE) { // 每个单独的数组都被存入到嵌套的数组中 $the_big_array[] = $data; } // 关闭文件 fclose($h); } // 以可读格式显示代码 echo "<pre class="brush:php;toolbar:false">"; var_dump($the_big_array); echo ""; ?>
#輸出:
以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。更多精彩內容大家可以追蹤php中文網相關教學欄位! ! !
以上是如何使用PHP處理CSV檔案?(程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!