我试图将.csv文件解析成一个mysql数据库,这并不好玩.
有些行看起来像这样:
"价值",价值,"价值3","价值,价值"
有些看起来像这样:
价值,价值,价值,价值
这个preg_split运行良好,除了空字段:
foreach ($row as $item) {
$item = preg_split( "/[,]*\\\"([^\\\"]+)\\\"[,]*|[,]+/", $item, 0, PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY);
}
Run Code Online (Sandbox Code Playgroud)
当我删除"PREG_SPLIT_NO_EMPTY"时,我在$ item的末尾添加了一个额外的空值.是否有正则表达式适用于此?
为什么不使用LOAD DATA INFILE
或者,使用PHP内置的fgetcsv()或str_getcsv()函数,而不是弄乱正在尝试重新发明轮子的正则表达式