當前位置: 首頁> 最新文章列表> PHP 高效處理CSV 文件的實用方法與示例

PHP 高效處理CSV 文件的實用方法與示例

M66 2025-07-10

使用PHP 函數處理CSV 數據的基本方法

CSV(逗號分隔值)是一種廣泛使用的結構化文本數據格式,PHP 內置多種函數,能夠方便地讀取、寫入和操作CSV 文件,極大地簡化了開發工作。

讀取CSV 文件

$handle = fopen('data.csv', 'r');
while (($row = fgetcsv($handle)) !== FALSE) {
    // 處理每一行數據
}
fclose($handle);

寫入CSV 文件

$handle = fopen('data.csv', 'w');
fputcsv($handle, ['col1', 'col2', 'col3']);
fclose($handle);

解析CSV 行數據

$row = fgetcsv($handle);
$values = explode(',', $row[0]);

拼接數組為CSV 行

$row = ['col1', 'col2', 'col3'];
$csvLine = implode(',', $row);

處理大型CSV 文件的優化方法

針對內存有限的環境,使用基於生成器的SplFileObject 類可以有效避免內存溢出,適合處理大文件:

 $handle = fopen('data.csv', 'r');
$csv = new SplFileObject('data.csv');
$csv->setFlags(SplFileObject::READ_CSV);

foreach ($csv as $row) {
    // 處理每一行數據
}

實戰示例:從CSV 文件導入用戶數據

假設您有一個包含用戶名、電子郵件和密碼的CSV 文件,以下代碼演示如何讀取該文件並導入用戶:

 // 打開 CSV 文件
$handle = fopen('users.csv', 'r');

// 跳過標題行
fgetcsv($handle);

// 逐行讀取並處理用戶數據
while (($row = fgetcsv($handle)) !== FALSE) {
    $username = $row[0];
    $email = $row[1];
    $password = $row[2];

    // 這裡調用自定義函數插入用戶
    insert_user($username, $email, $password);
}

fclose($handle);