我有一个输入 CSV,其中“列”没有包含在任何东西中。

文件内容($input = fopen(filename);):


    1,2,3,4,5,6,7
    a,b,c,d,e,f,g
    9,8,7,6,5,4,3
    z,y,x,w,v,u,t

I'm having problems getting fgetcsv() to work because there isn't an enclosure around the values.



    while($row = fgetcsv($input)) {
      print_r($row);
    }


结果是:
1111

I've tried some basic things that I could think of off the top of my head:

fgetcsc($file, 0, ',', '\');

fgetcsc($file, 0, ',', '');

任何解决方法的想法?手动编辑我的输入文件并不是一个真正的选择,因为它有几百万行。

最佳答案

不清楚你的问题是什么。 fgetcsvstr_getcsv 也适用于没有引号的列:

print_r(str_getcsv('1,2,3,4,5,6,7'));

返回:
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
    [6] => 7
)

引号是可选的,仅适用于可以在值中包含列分隔符的 CSV:
 column1, "Column 2 with , comma inside", colum3

关于PHP fgetcsv() 其中源文件没有 shell 字符?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8189264/

10-11 05:10