📜  为 csv 编码字符串 - PHP (1)

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

将字符串编码为 CSV 格式 - PHP

在 PHP 中,可以使用内置的函数将字符串编码为 CSV 格式。CSV(Comma Separated Values)是一种常见的数据存储和交换格式,常用于电子表格和数据库管理系统之间的数据导入和导出。

使用 fputcsv 函数将字符串写入 CSV 文件
<?php

$data = [
    ['John', 'Doe', 'john.doe@example.com'],
    ['Jane', 'Doe', 'jane.doe@example.com'],
    ['Bob', 'Smith', 'bob.smith@example.com'],
];

$fp = fopen('output.csv', 'w');

foreach ($data as $fields) {
    fputcsv($fp, $fields);
}

fclose($fp);

以上代码创建了一个名为 output.csv 的文件,并将 $data 数组中的每个子数组编码为 CSV 格式写入该文件。fputcsv 函数使用逗号(,)作为字段分隔符,默认情况下使用双引号(")作为字段包裹符。您可以通过传递其它字符作为参数来自定义这些选项,例如:fputcsv($fp, $fields, ';', "'");

使用 str_putcsv 函数将字符串编码为 CSV 格式

如果您仅需要将单个字符串编码为 CSV 格式,可以使用以下示例代码:

<?php

function str_putcsv($fields, $delimiter = ',', $enclosure = '"', $escape = '\\') {
    $fp = fopen('php://temp', 'r+');
    fputcsv($fp, $fields, $delimiter, $enclosure, $escape);
    rewind($fp);
    $csv = fgets($fp);
    fclose($fp);
    return rtrim($csv, "\n");
}

$string = 'John,Doe,john.doe@example.com';
$csv = str_putcsv(explode(',', $string));
echo $csv;

以上代码将 $string 字符串转换为数组,然后使用 str_putcsv 函数将其编码为 CSV 格式。str_putcsv 函数与 fputcsv 函数执行类似的操作,但返回的是一个字符串,而不是将数据写入文件。

总结

PHP 提供了多种方法将字符串编码为 CSV 格式。您可以使用 fputcsv 函数将数据写入 CSV 文件,或使用 str_putcsv 函数将单个字符串编码为 CSV 格式。这些函数提供了灵活的选项,使您能够自定义字段分隔符、字段包裹符和转义字符等参数。