CSV(Comma-Separated Values)是常見的資料交換格式。PHP 內建 fgetcsv() 函數可逐行解析 CSV 檔案,處理欄位引號、逗號換行等邊界情況。本文示範完整的讀取流程。
<?php
$file = 'data.csv';
$row = 0;
if (($handle = fopen($file, 'r')) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ',')) !== FALSE) {
$row++;
echo "第 $row 列: ";
print_r($data); // $data 為索引陣列,每個元素為一欄位
}
fclose($handle);
} else {
echo "無法開啟檔案: $file";
}
?>
fgetcsv(handle, length, delimiter, enclosure, escape),。"。\。<?php
$file = 'data.csv';
$handle = fopen($file, 'r');
if (!$handle) die('無法開啟檔案');
// 讀取標題列
$header = fgetcsv($handle);
if ($header) {
// 將標題轉為 UTF-8(若檔案為 Big5 等編碼)
$header = array_map('iconv', array_fill(0, count($header), 'Big5//IGNORE//UTF-8'), $header);
}
$data = [];
while (($row = fgetcsv($handle)) !== FALSE) {
// 同樣處理編碼
$row = array_map(function($v) { return iconv('Big5', 'UTF-8//IGNORE', $v); }, $row);
// 合併標題與資料為關聯陣列
$data[] = array_combine($header, $row);
}
fclose($handle);
print_r($data);
?>
iconv() 或 mb_convert_encoding() 轉換。file() 全讀入。fgetcsv() 會正確處理雙引號包裹的跨行欄位。fgetcsv() 是 PHP 處理 CSV 的標準工具,配合編碼轉換與標題列處理,可滿足大多數匯入需求。希望本文對您的 PHP 程式設計有所幫助。