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);
}

原文地址:https://www.cnblogs.com/lsbaiwyl/p/9026065.html

时间: 2024-11-09 06:52:01

php解析csv文件的相关文章

练习:读取解析CSV文件,将读取结果输出的控制台上,并封装到4个Teacher对象中.

/** *    读取解析CSV文件,将读取结果输出的控制台上,并封装到4个Teacher对象中. *    1, 土鳖, 13101015338, 北京海淀区 2, 咪咪, 13201015338, 北京朝阳区 3, 小仓, 13601015818, 北京宣武区 4, 饭岛爱, 13201025818, 北京朝阳区 /** * 读取解析CSV文件,将读取结果输出的控制台上,并封装到4个Teacher对象中. * 1, 土鳖, 13101015338, 北京海淀区 2, 咪咪, 13201015

Qt解析CSV文件

最近需要解析Excel文件,于是顺带写了解析CSV的代码 定义数据类型LX::Sheet 1 #ifndef LX_H 2 #define LX_H 3 4 #include <QString> 5 #include <QStringList> 6 7 namespace LX 8 { 9 class Sheet 10 { 11 enum FieldType{STRING, INT, DOUBLE, BOOL}; 12 public: 13 Sheet(){} 14 Sheet(S

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", $

[cocos2dx utils] cocos2dx读取,解析csv文件

在我们的游戏中,经常需要将策划的数值配置成csv文件,所以解析csv文件就是一个很common的logic, 例如如下csv文件: 下面是一个基于cocos2dx 2.2.4的实现类: #ifndef __Cell__GCCsvHelper__ #define __Cell__GCCsvHelper__ #include <iostream> #include "cocos2d.h" #include <vector> USING_NS_CC; class GC

如何用Java解析CSV文件

首先看一下csv文件的规则: csv(Comma Separate Values)文件即逗号分隔符文件,它是一种文本文件,可以直接以文本打开,以逗号分隔.windows默认用excel打开.它的格式包括以下几点(它的格式最好就看excel是如何解析的.): ①每条记录占一行: ②以逗号为分隔符: ③逗号前后的空格会被忽略: ④字段中包含有逗号,该字段必须用双引号括起来: ⑤字段中包含有换行符,该字段必须用双引号括起来: ⑥字段前后包含有空格,该字段必须用双引号括起来: ⑦字段中的双引号用两个双引

解析 csv文件 java &gt;&gt;&gt;&gt;&gt;最爱那水货

1 /** 2 * csv文件解析 <br> 3 * wx 微信明细数据 第1行是标题 ,最后2行 是总结 提取数据需要过滤<br> 4 * zfb 支付宝明细数据 前4行 和最后4行是总结 第5行是 标题 提取数据时需要过滤 5 * @param localPath 本地文件绝对路径 6 * @param flag 支付机构 wx zfb pos 7 * @return 8 */ 9 public List<String[]> csvAnalysis(String l

linux awk解析csv文件

#!/bin/bashfor file in *.csvdo awk -F ',' 'begin {total=0;sum=0} {total++;if($1<=100.0 && $15!=0) sum++} END{ print FILENAME,"all",total, sum ,sum*1.0/total}' $file >> stat1.log awk -F ',' 'begin {total=0;sum=0} {total[$15]++;if

Python数据清理之解析CSV文件

一不小心,1月份留下来的坑都两三个月了,荒草萋萋.Udacity数据分析专题已经进行到P3,但是笔记都没怎么记录.每当忘记之前的内容时,一页页重看视频真的是很耗费时间和精力,不如把视频整理成文字,哪怕是贴图! 流程:

C++ 解析CSV文件

1.XCFileStream的ReadData基本能用,需要加个 if(__ptr == '\0') break 的判断.(此时字符集为 未设置,假如是unicode编译不过) WriteData未做测试. 优化:可以只读某几行的内容. 2.读取配置文件内容 配置文件内容如下: [COLOR] TOOLBAR_BG = "#ABCDEF" dlgback = 2000 TCHAR szFileName[256]; ::GetModuleFileName(NULL, szFileName