使用CSV上传功能,我可以将所有重复数据上传到MySQL数据库。假设我有一些字段,如:
+------+-------+-----+--------+ | Year | Month | Day | Figure | +------+-------+-----+--------+ 2012 01 01 200 2012 01 02 303 2012 01 03 632 ... 2012 01 31 323 +------+-------+-----+--------+
在我的数据表中,我有两个共同点:
CSV对我的作用是:
2012,01,01,200
2012,01,02,303
2012,01,03,632
...
2012,01,31,323
年份和月份字段中的纯重复。如果我们可以通过CSV中的任何方式使这两个字段相同,那么输入用户就会好得多。
所以底线是:
答案 0 :(得分:0)
正如@ DevZer0建议的那样,CSV不是空字段(或缺少字段)的好选择。
如果您想使用基于文本的解决方案,可以尝试使用JSON / XML。
如果您想使用托管方法,可以尝试使用DBMS,例如MySQL / MSSQL。
或者上面的混合,SQLite,一个基于文件的数据库系统。
答案 1 :(得分:0)
我无法真正说明这将如何与你所说的wordpress插件集成,但是采用一种技术,其中空白列填充了前一条记录的值,你可以做这样的事情(假设有一个标题csv文件中具有唯一字段名称的行。)
<?php
$fp = fopen($csvFile, "r");
// get the header line
$header = fgetcsv($fp);
// seed the previous record array
$previousRec = array_combine($header, array_fill(0, count($header), ""));
while ($row = fgetcsv($fp)){
$row = array_combine($header, $row);
// filter with a closure requires php 5.3
$filtered = array_filter($row, function($a){ return trim($a) !== "";});
// merge the new data on top of the old with filtered values gone.
$row = array_merge($previousRec, $filtered);
// do something with row
// store the row as the previousRec for the next time arround.
$previousRec = $row;
}