【发布时间】:2011-04-20 22:19:45
【问题描述】:
鉴于以下 CSV 数据字符串(我无法确保这些字段被引用)
AB,CD, EF,GH, IJ
和PHP代码:
$arr = fgetcsv($f);
(假设 $f 是一个有效的文件指针,读取包含上述文本的文件)——人们会期待这个结果:
Array('AB', 'CD', ' EF', 'GH', ' IJ');
事实上你得到了:
Array('AB', 'CD', 'EF', 'GH', 'IJ');
如果您需要该字段中的位置上下文,这是有问题的。
任何解决方法仍然能够利用 fgetcsv,但确保不会丢失空格?
【问题讨论】:
-
这对我来说是个新闻。 PHP 行为几乎是我所期望的。无论如何,您可以使用
explode(",", $line),因为这正是您想要的。 -
@mario:但这并不适用于所有情况。
-
@mario:我想尽可能利用 fgetcsv,特别是如果引用的字段可用的话。
-
如果 fgetcsv 不能满足您的需求,您将无法利用它。我可以给你写一个正则表达式来引用未引用的字段。但是,只使用所说的东西进行提取会更明智。
-
这个人在这里发布了一个解决方法:thuejk.blogspot.com我还没有测试。