php解析csv文件

Posted lsbaiwyl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);
}













































以上是关于php解析csv文件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 PHP 解析 CSV 文件 [重复]

php解析csv文件

php解析csv时,特定汉字会导致逗号识别不出来

php 上传csv文件

使用PHP在短时间内解析大型CSV文件

csv表格处理(下)--纯JS解析导入csv