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

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

WBOY
WBOYoriginal
2016-05-25 16:45:17848parcourir

下面我来给各位同学简单的分享两个利用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);
}
?>

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


本文地址:

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

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn