在yii中导入和保存来自csv文件的数据

时间:2014-01-16 07:11:53

标签: php csv yii

这是我的csv文件的样子: enter image description here

我有三个字段(import siteimport goodsimport status)来导入相应的数据。因此,如果用户点击import site,则只有网站名称会被保存,而其余的则不会,import goodsimport status类似。

enter image description here

site's数据和status's数据保存在一个表中,但goods数据正在保存在与其网站相关的其他表中。如何将它们保存到多个表中?

2 个答案:

答案 0 :(得分:3)

我将分享简单的代码片段来解析csv文件,也许这可以帮助

$i=0; $keys=array();$output=array();
        $handle=fopen($filename, "r");
        if ($handle){
             while(($line = fgetcsv($handle)) !== false) {
                $i++;
                if ($i==1) {
                   $keys=$line;
                }
                elseif ($i>1){ 
                    $attr=array();
                    foreach($line as $k=>$v){
                        $attr[$keys[$k]]=$v;
                    }
                    $output[]=$attr;
                }    
             }
            fclose($handle);
        }

这将完成这项工作,我总是在使用csv时使用它。要使这项工作,第1行必须包含键,例如:

import_site, import_goods, import_status

$output数组中,您将获得包含密钥$output["import_site"]的数据,依此类推。

希望这会有所帮助。

答案 1 :(得分:0)

如果在mac上生成csv的问题,请记住这样做:

ini_set("auto_detect_line_endings", true);

可以节省很多时间;)