fgetcsv() 從檔案控制代碼逐行讀取並解析 CSV,自動處理跳脫字元,回傳欄位陣列。配合 HTML 表格即可快速呈現。
fgetcsv(resource $stream, int $length = 0, string $separator = ",", string $enclosure = "\"", string $escape = "\\"): array|false
<?php
$fp = fopen('sample.csv', 'r');
if (!$fp) die("無法開啟檔案");
echo "<table border='1'>\n";
while (($csv_line = fgetcsv($fp)) !== false) {
echo "<tr>";
foreach ($csv_line as $cell) {
echo "<td>" . htmlspecialchars($cell) . "</td>";
}
echo "</tr>\n";
}
echo "</table>\n";
fclose($fp);
?>
$length = 0 (預設) 表無行長度限制,PHP 5.1+ 支援// CSV 為 Big5,轉 UTF-8 顯示
$line = array_map(fn($c) => iconv('Big5', 'UTF-8', $c), $csv_line);
function csvPage($file, $page, $perPage = 50) {
$fp = fopen($file, 'r');
$skip = ($page - 1) * $perPage;
for ($i = 0; $i < $skip; $i++) fgetcsv($fp); // 略過
$data = [];
for ($i = 0; $i < $perPage; $i++) {
$row = fgetcsv($fp);
if (!$row) break;
$data[] = $row;
}
fclose($fp);
return $data;
}
fgetcsv() 是 PHP 讀取 CSV 的標準工具,安全、高效、標準相容。