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

作者:袖梨 2022-06-24

导入、导出CSV文件

 代码:

 代码如下 复制代码

class csv
{
 private $resource;

 /**
  * @param string $fileName 文件路径
  * @param string $mode     文件访问类型:w:写入、r:只读
  */
 public function __construct($fileName, $mode)
 {
  $this->resource = fopen($fileName, $mode);
 }

 public function __destruct()
 {
  fclose($this->resource);
 }

 /**
  * 导入CSV www.111com.net
   * @param array $data
  * @return int
  */
 public function export($data)
 {
  fputcsv($this->resource, $data);
 }

 /**
  * 导出CSV
  * @return array
  */
 public function import()
 {
  $tmp = array();
  while($data = fgetcsv($this->resource))
  {
   $tmp[] = $data;
  }

  return $tmp;
 }
}

这里我们主要用到了php fgetcsv函数、fputcsv函数。


CSV文件下载

 代码如下 复制代码

function exportUserTask()
{
 //获取数据库数据
 /*
  * $result = array(
  *   array(value1,value2,value3,value4,value5,value6),
  *   array(value1,value2,value3,value4,value5,value6),
  * );
  */

 $handle = fopen('php://output', "w");
 header('Content-Type: application/csv');
 header('Content-Disposition: attachment; filename="test.csv"');

 //表头 www.111com.net
 fputcsv($handle, array('用户UID', '用户名', '进行中', '已完成', '已失败', '总计'));

 foreach($result as $value)
 {
  fputcsv($handle, $value);
 }

 fclose($handle);
}

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

相关文章

精彩推荐