【问题标题】:How do you EXPLODE CSV line with a comma in value?你如何用逗号展开 CSV 行?
【发布时间】:2011-12-25 18:15:48
【问题描述】:
"AMZN","Amazon.com, Inc.",211.22,"11/9/2011","4:00pm","-6.77 - -3.11%",4673052

Amazon.com, Inc. 被视为 2 个值而不是 1 个值。

我试过这个$data = explode( ',', $s);

如何修改它以避免值问题中的逗号?

【问题讨论】:

  • 您可能正在寻找php.net/manual/en/function.str-getcsv.php(不过,这只是 PHP >= 5.3)
  • @Pekka :在输出中,当我拆分返回的值并将每个值打印在单独的行中时。
  • @Galled :并非所有值都包含在引号中。例如:211.22 没有用引号括起来。
  • @ScottMcGready 请不要在编辑时只修复帖子中的一件事。修复一切(语法、格式、标签等)。
  • @hichris123 有一点时间可以消磨时间,不想陷入困境。我想我会在等待的时候进行一点的清理工作,但足够公平

标签: php csv explode


【解决方案1】:

您可能应该查看str_getcsv()(或fgetcsv(),如果您从文件加载CSV)

这会将 CSV 内容读入一个数组,而不需要爆炸等。

Edit- 扩展 Pekka 提出的观点,如果您使用的是 PHP str_getcsv() 将无法工作,但有一个有趣的方法 here 可以重现较小版本的功能。另一种方法here 在创建临时文件后使用fgetcsv()

【讨论】:

    【解决方案2】:

    使用专用的 CSV 库。人们反复解释说,手动解析 CSV 等文件格式是自找麻烦,因为您不了解 CSV 的所有变体以及正确执行此操作的所有规则。

    【讨论】:

    • 抱歉,PHP 有点生疏了,我已经有一段时间没有研究它了。和平!
    猜你喜欢
    • 2010-11-29
    • 1970-01-01
    • 1970-01-01
    • 2013-09-18
    • 2014-09-06
    • 2013-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多