当前位置: 首页> 最新文章列表> 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);