php 上传csv文件
php fgetcsv()函数
定义和用法
fgetcsv() 函数从文件指针中读入一行并解析 CSV 字段。
与 fgets() 类似,不同的是 fgetcsv() 解析读入的行并找出 CSV 格式的字段,然后返回一个包含这些字段的数组。
fgetcsv() 出错时返回 FALSE,包括碰到文件结束时。
注释:从 PHP 4.3.5 起,fgetcsv() 的操作是二进制安全的。
语法
fgetcsv(file,length,separator,enclosure)
参数 | 描述 |
---|---|
file | 必需。规定要检查的文件。 |
length |
可选。规定行的最大长度。必须大于 CVS 文件内最长的一行。 在 PHP 5 中该参数是可选的。在 PHP 5 之前是必需的。 如果忽略(在 PHP 5.0.4 以后的版本中设为 0)该参数的话,那么长度就没有限制,不过可能会影响执行效率。 |
separator | 可选。设置字段分界符(只允许一个字符),默认值为逗号。 |
enclosure |
可选。设置字段环绕符(只允许一个字符),默认值为双引号。 该参数是在 PHP 4.3.0 中添加的。 |
提示和注释
注释:CSV 文件中的空行将被返回为一个包含有单个 null 字段的数组,不会被当成错误。
注释:该函数对区域设置是敏感的。比如说 LANG 设为 en_US.UTF-8 的话,单字节编码的文件就会出现读取错误。
注释:如果碰到 PHP 在读取文件时不能识别 Macintosh 文件的行结束符,可以激活 auto_detect_line_endings 运行时配置选项。
例子
例子 1
<?php $file = fopen("contacts.csv","r");
print_r(fgetcsv($file));
fclose($file); ?>
CSV 文件:
George, John, Thomas, USA
James, Adrew, Martin, USA
输出类似:
Array
(
[0] => George
[1] => John
[2] => Thomas
[3] => USA
)
例子 2
<?php $file = fopen("contacts.csv","r"); while(! feof($file))
{
print_r(fgetcsv($file));
} fclose($file); ?>
CSV 文件:
George, John, Thomas, USA
James, Adrew, Martin, USA
输出类似:
Array
(
[0] => George
[1] => John
[2] => Thomas
[3] => USA Array
(
[0] => James
[1] => Adrew
[2] => Martin
[3] => USA
)
//$file csv文件 function get_csv($file){ $ofile = $file; $file = fopen($file, 'r');
while ($data = fgetcsv($file)) {
$goods_list[] = $data;
}
fclose($file);
foreach ($goods_list as $key=>$val){
$data[ 'area'] = iconv('gb2312' , 'utf-8', $val[0]);
$data[ 'city'] = iconv('gb2312' , 'utf-8', $val[1]);
$data[ 'manager'] = iconv('gb2312' , 'utf-8', $val[2]);
$data[ 'seniorManager'] = iconv('gb2312', 'utf-8' , $val[3]);
$data[ 'shopnum'] = iconv('gb2312' , 'utf-8', $val[4]);
$data[ 'name'] = iconv('gb2312' , 'utf-8', $val[5]);
$data[ 'address'] = iconv('gb2312' , 'utf-8', $val[6]);
$data[ 'lat'] = iconv('gb2312' , 'utf-8' , $val[7]);
$data[ 'lng'] = iconv('gb2312' , 'utf-8' , $val[8]);
//将$data传入数据库
}
unlink($ofile);
}
php 上传csv文件的更多相关文章
- CodeIgniter 无法上传 CSV 文件
本篇文章由:http://xinpure.com/codeigniter-unable-to-upload-a-csv-file/ 解决 CodeIgniter 中使用 Upload 类无法上传 CS ...
- elementUI 上传.csv文件不成功 导入功能
前言:element上传excel文件 导入功能 目标:点击导入,将excel表格的数据填充到表格. <el-upload class="upload-demo" :ac ...
- Springboot 上传CSV文件并将数据存入数据库
.xml文件依赖配置 <!--csv依赖 --> <dependency> <groupId>org.apache.commons</groupId> ...
- php上传excle文件,csv文件解析为二维数组
解析上传的CSV文件不是什么难事,直接读取转成你想要的数组样子就OK了. public function putStoreStockIn ($filePath = '') { $file = fope ...
- struts2文件上传,文件类型 allowedTypes
struts2文件上传,文件类型 allowedTypes 1 '.a' : 'application/octet-stream', 2 '.ai' : 'application/postscript ...
- CI框架上传csv文件
今天遇到在用CI框架上传csv文件时报错问题: The filetype you are attempting to upload is not allowed. 是类型不允许,想到CI框架的conf ...
- shell脚本实现ftp上传下载文件
前段时间工作中需要将经过我司平台某些信息核验数据提取后上传到客户的FTP服务器上,以便于他们进行相关的信息比对核验.由于包含这些信息的主机只有4台,采取的策略是将生成的4个文件汇集到一个主机上,然后在 ...
- struts2实现文件上传(多文件上传)及下载
一.要实现文件上传,需在项目中添加两个jar文件 二.上传准备的页面 注:必须植入enctype="multipart/form-data"属性,以及提交方式要设置成post &l ...
- spring mvc文件上传(单个文件上传|多个文件上传)
单个文件上传spring mvc 实现文件上传需要引入两个必须的jar包 1.所需jar包: commons-fileupload-1.3.1.jar ...
随机推荐
- Prime Ring Problem (DFS练习题)
K - Prime Ring Problem ============================================================================= ...
- python2.7练习小例子(十九)
19):题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半:再落下,求它在第10次落地时,共经过多少米?第10次反弹多高? #!/usr/bin/python # -*- codi ...
- ORB-SLAM (四)tracking跟踪解析
初始化完成后,对于相机获取当前图像mCurrentFrame,通过跟踪匹配上一帧mLastFrame特征点的方式,可以获取一个相机位姿的初始值:为了兼顾计算量和跟踪鲁棒性,处理了三种模型: 1. Tr ...
- Linux下Expect 完成自动输入密码
今天要开发一个定时任务,然后加入cron列表中.但是有个问题摆在眼前,脚本的执行中需要输入数据库密码(貌似5.1版本以上不允许在-p后直接加密码,会报错) mysql -u root -p <& ...
- vux用法
其实官网写的很详细了 但是好多时候没有仔细看的耐心 下面基本也是vux官网步骤: 很多人需要$t未定义问题 其实按着官网来就能解决这个报错: 如果你遇到 $t 报错问题,请不要开 issue,升级 v ...
- 小议Android多进程以致Application多次初始化
最近遇到一个bug,当应用加了多进程后,比如总共进程数为N,会出现在`startService()`时`onStartCommand()`方法会被重复调用`(N-1)`次的奇怪现象. ***## 祸起 ...
- 第十九章 Python os模块,pathlib 判断文件是目录还是文件
OS模块 os.path.abspath() :返回path规范化的绝对路径 import sys import os BASE_DIR = os.path.dirname(os.path.dirna ...
- Struts2(七.删除和修改用户功能的实现)
一.删除功能 之前跳转用户列表的时候把用户id,用户名,用户密码存入了ActionContext 1.userlist.jsp <%@ page language="java" ...
- Java IO学习--RandomAccessFile
1.什么是 随机访问文件流 RandomAccessFile 这个类在很多资料上翻译成中文都是:随机访问文件,在中文里,随机是具有不确定的含义,指一会访问这里,一会访问那里的意思.如果以这种语义来解释 ...
- python 网络编程(socketserver,阻塞,其他方法)
重点回顾: (重点)粘包 : 就是因为接收端不知道如何接收数据,造成接收数据的混乱的问题 只发生在tcp协议上. 因为tcp协议的特点是面向数据流形式的传输 粘包的发生主要是因为tcp协议有两个机制: ...