当前位置:首页 > PHP教程 > php高级应用 > 列表

PHP实现数据导入、CSV文件下载的例子

发布:smiling 来源: PHP粉丝网  添加日期:2014-06-25 15:47:00 浏览: 评论:0 

下面我来给各位同学简单的分享两个利用php操作csv格式文件的例子,一个是对csv输出下载,另一个是利用php的fgetcsv函数、fputcsv函数进行读写操作.

导入、导出CSV文件,代码如下:

  1. class csv 
  2. { 
  3.  private $resource; 
  4.  
  5.  /** 
  6.   * @param string $fileName 文件路径 
  7.   * @param string $mode     文件访问类型:w:写入、r:只读 
  8.   */ 
  9.  public function __construct($fileName, $mode) 
  10.  { 
  11.   $this->resource = fopen($fileName, $mode); 
  12.  } 
  13.  
  14.  public function __destruct() 
  15.  { 
  16.   fclose($this->resource); 
  17.  } 
  18.  
  19.  /** 
  20.   * 导入CSV 
  21.    * @param array $data 
  22.   * @return int 
  23.   */ 
  24.  public function export($data) 
  25.  { 
  26.   fputcsv($this->resource, $data); 
  27.  } 
  28.  
  29.  /** 
  30.   * 导出CSV 
  31.   * @return array 
  32.   */ 
  33.  public function import() 
  34.  { 
  35.   $tmp = array(); 
  36.   while($data = fgetcsv($this->resource)) 
  37.   { 
  38.    $tmp[] = $data; 
  39.   } 
  40.  
  41.   return $tmp; 
  42.  } 
  43. } 

这里我们主要用到了php fgetcsv函数、fputcsv函数,CSV文件下载代码如下:

  1. function exportUserTask() 
  2. { 
  3.  //获取数据库数据 
  4.  /* 
  5.   * $result = array( 
  6.   *   array(value1,value2,value3,value4,value5,value6), 
  7.   *   array(value1,value2,value3,value4,value5,value6), 
  8.   * ); 
  9.   */ 
  10.  
  11.  $handle = fopen('php://output', "w"); 
  12.  header('Content-Type: application/csv'); 
  13.  header('Content-Disposition: attachment; filename="test.csv"'); 
  14.  
  15.  //表头
  16.  fputcsv($handle, array('用户UID', '用户名', '进行中', '已完成', '已失败', '总计')); 
  17.  
  18.  foreach($result as $value) 
  19.  { 
  20.   fputcsv($handle, $value); 
  21.  } 
  22.  
  23.  fclose($handle); 
  24. } 

需要提醒的是在导入、导出数据过程注意中文乱码问题,这主要是数据编码格式问题,使用过程根据实际情况对数据进行转码.

Tags: CSV文件下载 PHP数据导入

分享到:

相关文章