我在 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 字符,它告诉如何构建可能包含分隔符的字段。