PHP实现数据导入、CSV文件下载的例子
下面我来给各位同学简单的分享两个利用php操作csv格式文件的例子,一个是对csv输出下载,另一个是利用php的fgetcsv函数、fputcsv函数进行读写操作.
导入、导出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
* @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"' );
//表头
fputcsv ( $handle , array ( '用户UID' , '用户名' , '进行中' , '已完成' , '已失败' , '总计' ));
foreach ( $result as $value )
{
fputcsv ( $handle , $value );
}
fclose( $handle );
}需要提醒的是在导入、导出数据过程注意中文乱码问题,这主要是数据编码格式问题,使用过程根据实际情况对数据进行转码.