📜  php 读取 csv - PHP (1)

📅  最后修改于: 2023-12-03 15:03:43.603000             🧑  作者: Mango

PHP读取CSV

CSV(Comma Separated Values)是一种简单的数据格式,非常适合表示表格数据,比如Excel表格数据。PHP提供了多种方法用于读取和操作CSV文件格式。

读取CSV文件

PHP提供了fgetcsv函数来读取CSV文件的内容。下面是一个读取CSV文件的示例代码:

$filename = 'data.csv';

if (($handle = fopen($filename, 'r')) !== false) {
    while (($data = fgetcsv($handle)) !== false) {
        // 处理CSV数据
    }
    fclose($handle);
}

在上面的代码中,我们首先打开CSV文件,然后使用fgetcsv函数逐行读取CSV文件的内容,并将每一行的数据转换为一个数组。我们可以在while循环中对CSV数据进行处理。

处理CSV数据

一旦我们将CSV文件读取到了一个数组中,我们就可以像处理普通数组一样处理它。下面是一些处理CSV数据的示例代码:

输出CSV数据
$filename = 'data.csv';

if (($handle = fopen($filename, 'r')) !== false) {
    while (($data = fgetcsv($handle)) !== false) {
        foreach ($data as $value) {
            echo $value . ',';
        }
        echo "\n";
    }
    fclose($handle);
}

在上面的代码中,我们使用了一个嵌套的foreach循环来输出CSV数据。

将CSV数据转换为JSON
$filename = 'data.csv';

if (($handle = fopen($filename, 'r')) !== false) {
    $keys = fgetcsv($handle);
    $json = array();
    while (($data = fgetcsv($handle)) !== false) {
        $json[] = array_combine($keys, $data);
    }
    fclose($handle);
    echo json_encode($json);
}

在上面的代码中,我们首先读取CSV文件的第一行,这一行通常包含了CSV文件中每一列的名称。然后我们使用array_combine函数将每一行的数据与列名对应起来,最后将所有行的数据转换为JSON格式。

将CSV数据存储到数据库
$filename = 'data.csv';
$db = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');

if (($handle = fopen($filename, 'r')) !== false) {
    $keys = fgetcsv($handle);
    $placeholders = implode(',', array_fill(0, count($keys), '?'));

    $stmt = $db->prepare('INSERT INTO data (' . implode(',', $keys) . ') VALUES (' . $placeholders . ')');

    while (($data = fgetcsv($handle)) !== false) {
        $stmt->execute($data);
    }

    fclose($handle);
}

在上面的代码中,我们首先打开CSV文件并读取第一行,这一行通常包含了CSV文件中每一列的名称。然后我们使用PDO准备好一个INSERT语句,并将每一行的数据插入到数据库中。

结论

在本文中,我们介绍了如何使用PHP读取CSV文件,以及如何处理读取到的CSV数据。无论是将CSV数据转换为JSON格式,还是将CSV数据存储到数据库中,PHP都提供了简单而实用的方法。