2

我正在构建一个从 excel .csv 文件中提取数据并应用各种级别的格式化、移动和映射的应用程序。除了清理数据的一个障碍外,大多数事情都已经弄清楚了。以下是 Excel 中的数据示例:

  1. 伟大的表演,伟大的表演,57744 环湖路,纽约,纽约
  2. "GUASTAVINO'S, INC",GUASTAVINO'S,8250 WESTHEIMER RD,NEW YORK,NY
  3. 克拉克斯集团有限责任公司,雨果的青蛙酒吧,915 3RD AVE,芝加哥,IL
  4. TRIOMPHE RESTAURANT CORP,"GEORGE'S,JEAN",1309 E PUTNAM AVE,NEW YORK,NY

由于第 3 行的第 2 行和第 4 行,我不能直接做explode()。这两行都有一个“字符串,字符串”,我无法控制数据导出,只是在导入时进行清理。

我尝试了一些非优雅的选项,它正在消磨处理时间。谁能想到一个优雅的解决方案?

我不能使用 MySQL IMPORT 功能,不幸的是它必须通过 PHP 处理。

4

2 回答 2

7

您也可以尝试执行 SQL 语句:

LOAD DATA INFILE 'mydata.csv'
  FIELDS TERMINATED BY ','
  OPTIONALLY ENCLOSED BY '"';

我听说你使用 PHP,但你可以从 PHP 运行上面的语句。或者您的意思是输入是读取 CSV 产生的流,而不是 CSV 文件?不幸的是 LOAD DATA INFILE 需要一个文件名,它不能接受标准输入。

于 2008-12-21T22:52:38.317 回答
4

我看到你的问题已经回答了。但是,如果您想将文件读入 PHP 以供使用,则可以使用fgetcsv

于 2008-12-22T01:07:42.990 回答