如何将CSV文件中的值实际拆分为MySQL数据库

时间:2010-06-17 04:33:49

标签: php mysql regex csv

假设我在CSV文件中有以下行(我在此示例中删除了标题行):

"500,000",2,50,2,90000

我有一个PHP脚本读取CSV文件,将文件分成单独的行,并将每行存储在名为$ linearray的数组中。然后,我使用foreach循环单独查看每一行。

在foreach循环中,我使用以下函数将该行拆分为单独的变量:

$line = str_replace("'","\'",$line);

从这里,我将值插入MySQL数据库中的单独列中。该脚本有效。这些值被插入到数据库中,但是我遇到了问题。我想要:

"500,000"  |  2  |  50  |  2  |  90000

但我明白了:

"500  |  000"  |  2  |  50  |  2  |  90000

该脚本不够智能,无法理解它应该在引号内跳过逗号。你知道我怎么改变我的脚本以确保我得到我正在寻找的输出吗?

2 个答案:

答案 0 :(得分:2)

您可以使用str_getcsv功能

print_r(str_getcsv($line));

<强>输出:

Array
(
    [0] => 500,000
    [1] => 2
    [2] => 50
    [3] => 2
    [4] => 90000
)
  

fgetcsv()类似,此函数将字符串解析为输入,而fgetcsv()则将文件作为输入。

答案 1 :(得分:1)

尝试fgetcsv