如何为CSV,fgetcsv()问题转义逗号

Ste*_*tra 4 php csv excel

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

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

如: "2,5,7"读作"2&5&8"

通过将双引号更改为单引号可以解决该问题.但是,我不想每次都编辑每个CSV文件.

我使用的代码如下:

$handle = fopen($path, "r");
$data = fgetcsv($handle,1000,",","'");
do
{
    **READ CSV**
}
while ($data = fgetcsv($handle,5000,","));

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

Ora*_*ill 7

改变这一行

$data = fgetcsv($handle,1000,",","'");
Run Code Online (Sandbox Code Playgroud)

$data = fgetcsv($handle,1000,",",'"');
Run Code Online (Sandbox Code Playgroud)

或者只是取消最后两个参数,因为它们是默认值

$data = fgetcsv($handle,1000);
Run Code Online (Sandbox Code Playgroud)

fgetcsv的第四个参数是外壳字符,它告诉如何构造可能在其中包含分隔符的字段.

  • 该死的第四个参数! (2认同)