我在 PHP 中使用 fgetcsv() 函数来读取使用 Microsoft Excel 生成的 CSV 文件。

问题是 CSV 文件包含带逗号的值,它按原样读取转义值(带双引号)。

例如: "2,5,7" 读作 "2 & 5 & 8"
问题可以通过将双引号改为单引号来解决。但是我不想每次都编辑每个 CSV 文件。

我使用的代码如下:

$handle = fopen($path, "r");
$data = fgetcsv($handle,1000,",","'");

{
**阅读CSV**
}
while ($data = fgetcsv($handle,5000,","));

处理此问题的最佳方法是什么?

最佳答案

改变这一行

$data = fgetcsv($handle,1000,",","'");


$data = fgetcsv($handle,1000,",",'"');

或者只保留最后两个参数,因为它们是默认值
$data = fgetcsv($handle,1000);

fgetcsv 的第四个参数是 shell 字符,它告诉如何构建可能包含分隔符的字段。

10-07 22:01