我正在构建一个从 excel .csv 文件中提取数据并应用各种级别的格式设置、移动和映射的应用程序。除了清理数据的一个障碍外,几乎所有的事情都已经解决了。以下是来自 Excel 的数据示例:
- 伟大的表演,伟大的表演,57744 ROUND LAKE RD,NEW YORK,NY
- “GUASTAVINO'S, INC”,GUASTAVINO'S,8250 WESTHEIMER RD,NEW YORK,NY
- THE CLARKES GROUP LLC,HUGO'S FROG BAR,915 3RD AVE,CHICAGO,IL
- TRIOMPHE RESTAURANT CORP,"GEORGE'S,JEAN",1309 E PUTNAM AVE,NEW YORK,NY
由于第 3 行的第 2 行和第 4 行,我无法直接执行 explode()。这两行上都有一个“字符串,字符串”,我无法控制数据导出,只能在导入时进行清理。
我已经尝试了一些非优雅的选项,它正在扼杀处理时间。谁能想到一个优雅的解决方案?
我不能使用 MySQL 的 IMPORT 功能,很遗憾,它必须通过 PHP 处理。
最佳答案
您也可以尝试执行 SQL 语句:
LOAD DATA INFILE 'mydata.csv'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"';
我听说您使用 PHP,但您可以从 PHP 运行上面的语句。或者你的意思是输入是读取 CSV 而不是 CSV 文件的流?不幸的是,LOAD DATA INFILE 需要一个文件名,它不能接受标准输入。
关于php - 解析在引号括起的文本中包含逗号的 csv 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/385099/