当我使用PHP将数据从CSV插入MySQL时,如何处理奇怪的数字

时间:2014-11-24 06:21:46

标签: php mysql csv

有一个CSV文件,其中包含多个列,例如:

  

(身份证,价格,地址)

但在价格栏中,有一些奇怪的地方

例如,如果一行中没有价格数据,则会显示“ - ”

另外,如果价格要大得多。数字之间会有逗号,它会显示:$ 1,123,234.12

如何处理这些情况?

例如:

  

(1000, - ,纽约)

     

(1001,$ 1,100,100,波士顿)

     

(1002,$ 100,LA)

在CSV文件中,当使用PHP将这些数据插入MySQL数据库时,它应显示:

  

(1000,0,纽约)

     

(1001,1100100,波士顿)

     

(1002,100,LA)

在数据库中

有谁告诉我如何处理这个问题?我不知道如何处理这些情况。

1 个答案:

答案 0 :(得分:0)

您可以在导入之前进行一些清理,例如

function csv_clean($csv_file){
    $data = file_get_contents($csv_file);
    $data = str_replace(' -,', ' NULL,', $data);
    $data = preg_replace('/(?<=\d),(?=\d)|\$/', '', $data);
    file_put_contents($csv_file, $data);
}

csv_clean('data.csv');

这将以所需格式保存CSV文件,然后您可以导入它。