PHP解析.csv文件_PHP csv文件读取导出
程序员文章站
2021-12-03 07:56:14
...
本文章是对 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); }