PHP解析.csv文件_PHP csv文件读取导出
2017-06-08 14:08:07  By: shinyuu

本文章是对 PHP 读取 csv 文件的内容进行了详细的分析介绍、需要的朋友参考下、相信这个需求在工作中肯定会是经常用到的、封装了一个类来处理这个这个需求

public function actionImport() {
    //post请求过来的 $fileName = $_FILES[´file´][´name´];
    $fileTmpName = $_FILES[´file´][´tmp_name´];
    //判断是否选择了上传的文件
    if (empty($fileName)) {
        $data[´message´] = "请选择要上传的文件";
        return $this->render("batch_add", $data);
    }

    //判断选择上传的文件是不是csv格式
    if (explode(".", $fileName)[1] != "csv") {
        $data[´message´] = "请选择csv格式的文件上传";
        return $this->render("batch_add", $data);
    }

    //创建一个空数组,预放imageUrl
    $imageCollection = [];
    //打开要读的文件
    $handle = fopen($fileTmpName, ´r´);
    //解析csv文件
    while (!feof($handle)) {
        //fgets方法按行读
        $result = fgets($handle);
        //判断读到的每一行是否有值
        if (!empty($result)) {
            $arrResult = explode(",", $result);
            $name = $arrResult[0];
            $age = $arrResult[1];
            $gender = $arrResult[2];
            //图片的原路径
            $imagePath = $arrResult[3];
            //图片的名字
            $image = basename($imagePath);

            $data[´message´] = Person::savePerson($name, $age, $gender, $image);

            if ($data[´message´] == ´add successful´) {
                //将每个图片的uri放到数组中
                array_push($imageCollection, $imagePath);
            }
        }
    }
    //关闭文件流
    fclose($handle);

    //关闭文件流之后才能上传图片,注意:流和流是不能嵌套使用的
    if (!empty($imageCollection)) {

        foreach ($imageCollection as $value) {
            //将图片上传到服务器上
            move_uploaded_file($imagePath, dirname(__DIR__) . ´/web/images/´.date("Ymd").´/´.$image);
        }
    }
    return $this->render("batch_add", $data);
}


若资源对你有帮助、浏览后有很大收获、不妨小额打赏我一下、你的鼓励是维持我不断写博客最大动力

想获取DD博客最新代码、你可以扫描下方的二维码、关注DD博客微信公众号(ddblogs)

或者你也可以关注我的新浪微博、了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)

如对资源有任何疑问或觉得仍然有很大的改善空间、可以对该博文进行评论、希望不吝赐教

为保证及时回复、可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)

感谢你的访问、祝你生活愉快、工作顺心、欢迎常来逛逛


快速评论


技术评论

  • 该技术还没有评论、赶快抢沙发吧...
DD记账
top
+