Home >php教程 >php手册 >PHP实现数据导入、CSV文件下载的例子

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

WBOY
WBOYOriginal
2016-05-25 16:45:17846browse

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

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

<?php
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文件下载代码如下:

<?php
function exportUserTask() {
    //获取数据库数据
    /*
     * $result = array(
     *   array(value1,value2,value3,value4,value5,value6),
     *   array(value1,value2,value3,value4,value5,value6),
     * );
    */
    $handle = fopen(&#39;php://output&#39;, "w");
    header(&#39;Content-Type: application/csv&#39;);
    header(&#39;Content-Disposition: attachment; filename="test.csv"&#39;);
    //表头
    fputcsv($handle, array(
        &#39;用户UID&#39;,
        &#39;用户名&#39;,
        &#39;进行中&#39;,
        &#39;已完成&#39;,
        &#39;已失败&#39;,
        &#39;总计&#39;
    ));
    foreach ($result as $value) {
        fputcsv($handle, $value);
    }
    fclose($handle);
}
?>

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


本文地址:

转载随意,但请附上文章地址:-)

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn