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);
}  
时间: 2024-11-03 21:58:18

php 上传csv文件的相关文章

CodeIgniter 无法上传 CSV 文件

本篇文章由:http://xinpure.com/codeigniter-unable-to-upload-a-csv-file/ 解决 CodeIgniter 中使用 Upload 类无法上传 CSV 的问题. 将: 'csv' => array('text/x-comma-separated-values', 'text/comma-separated-values', 'application/octet-stream', 'application/vnd.ms-excel', 'appl

struts2文件上传,文件类型 allowedTypes

struts2文件上传,文件类型 allowedTypes 1 '.a' : 'application/octet-stream', 2 '.ai' : 'application/postscript', 3 '.aif' : 'audio/x-aiff', 4 '.aifc' : 'audio/x-aiff', 5 '.aiff' : 'audio/x-aiff', 6 '.au' : 'audio/basic', 7 '.avi' : 'video/x-msvideo', 8 '.bat'

WebUploader插件上传大文件单文件和多文件JAVA版使用总结

一.使用webuploader插件的原因说明 被现在做的项目坑了. 先说一下我的项目架构Spring+struts2+mybatis+mysql 然后呢.之前说好的按照2G上传就可以了,于是乎,用了ajaxFileUpload插件,因为之前用图片上传也是用这个,所以上传附件的时候就直接拿来用了 各种码代码,测试也测过了,2G文件上传没问题,坑来了,项目上线后,客户又要求上传4G文件,甚至还有20G以上的..纳尼,你不早说哦... 在IE11下用ajaxFileUpload.js插件上传超过4G的

eclipse中导入jdk源码、SpringMVC注解@RequestParam、SpringMVC文件上传源码解析、ajax上传excel文件

eclipse中导入jdk源码:http://blog.csdn.net/evolly/article/details/18403321, http://www.codingwhy.com/view/799.html. ------------------------------- SpringMVC注解@RequestParam:http://825635381.iteye.com/blog/2196911. --------------------------- SpringMVC文件上传源

SFTP上传下载文件

secureCRT SFTP上传/下载文件 远程登陆IP secureCRT会话中点击SFTP 3.cd  /home/dowload       linux平台切换到/home/dowload目录 4.cd d:\   windows平台切换到d盘 5.put 文件名           上传 /home/dowload目录下 6.get 文件名   下载文件到windows平台 d盘

Linux上传下载文件

2种方式:xftp(工具).lrzsz xftp:协议--SFTP.端口号--22 lrzsz: rz,sz是Linux/Unix同Windows进行ZModem文件传输的命令行工具. 优点就是不用再开一个sftp工具登录上去上传下载文件. sz(下载):将选定的文件发送(send)到本地机器 rz(上传):运行该命令会弹出一个文件选择窗口,从本地选择文件上传到Linux服务器 安装命令:yum install lrzsz 从服务端发送文件到客户端:sz filename 从客户端上传文件到服务

Struts文件上传allowedTypes问题,烦人的“允许上传的文件类型”

Struts的文件上传问题,相信很多人都会使用allowedTypes参数来配置允许上传的文件类型,如下. [html] view plaincopy <param name="allowedTypes"> image/png,image/bmp,image/jpg </param> 但是,用过这个参数的人都知道,allowedTypes是“文件类型”, 而不是“文件后缀名”,文件类型与文件后缀名有什么区别呢? 就如后缀名为bmp的图片的文件类型为image/b

SpringMVC实现单文件上传、多文件上传、文件列表显示、文件下载

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文详细讲解了SpringMVC实例单文件上传.多文件上传.文件列表显示.文件下载. 一.新建一个Web工程,导入相关的包 springmvc的包+commons-fileupload.jar+connom-io.jar+commons-logging,jar+jstl.jar+standard.jar 整个相关的包如下: 整个工程目录如下: 二.配置web.xml和SpringMVC文件

uploadify上传大文件

引言 之前使用Uploadify做了一个上传图片并预览的功能,今天在项目中,要使用该插件上传大文件.之前弄过上传图片的demo,就使用该demo进行测试.可以查看我的这篇文章: [Asp.net]Uploadify所有配置说明,常见bug问题分析 . 大文件上传 第一步:修改uploadify参数 1 'fileSizeLimit': '0',//单个文件大小,0为无限制,可接受KB,MB,GB等单位的字符串值 2 'fileTypeDesc': '文件',//文件描述Image Files 3