亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

詳解PHP導入導出CSV文件

2024-05-04 23:26:40
字體:
來源:轉載
供稿:網友
項目開發中,很多時候要將外部CSV文件導入到數據庫中或者將數據導出為CSV文件,那么具體該如何實現呢?本文將使用PHP并結合mysql,實現了CSV格式數據的導入和導出功能。
 
 

我們先準備mysql數據表,假設項目中有一張記錄學生信息的表student,并有id,name,sex,age分別記錄學生的姓名、性別、年齡等信息。

 

復制代碼代碼如下:

CREATE TABLE `student` (   
    `id` int(11) NOT NULL auto_increment,   
    `name` varchar(50) NOT NULL,   
    `sex` varchar(10) NOT NULL,   
    `age` smallint(3) NOT NULL default '0',   
    PRIMARY KEY  (`id`)   
) ENGINE=MyISAM  DEFAULT CHARSET=utf8;  

 

我們還需要一個html交互頁面,放置導入表單和導出按鈕。

 

復制代碼代碼如下:

<form id="addform" action="do.php?action=import" method="post" enctype="multipart/form-data">  
    <p>請選擇要導入的CSV文件:<br/><input type="file" name="file"> <input type="submit"  
    class="btn" value="導入CSV">  
    <input type="button" class="btn" value="導出CSV" onclick="window.location.href='do.php?   
    action=export'"></p>  
</form>  

 

選擇好本地csv文件后,點擊導入,提交到do.php?action=import處理,而點擊導出按鈕則請求地址do.php?action=export進行數據導出處理。

1.導入CSV
do.php需要根據get過來的參數,分別處理導入和導出過程,php結構如下:

 

復制代碼代碼如下:

include_once ("connect.php"); //連接數據庫   
$action = $_GET['action'];   
if ($action == 'import') //導入CSV   
{   
    //導入處理   
}elseif($action=='export') //導出CSV   
{   
    //導出處理    
}  

 

導入CSV處理流程:校驗csv文件合法性(本文忽略)->打開讀入并解析csv文件中的字段->循環獲取各字段值->批量添加到數據表中->完成。

 

復制代碼代碼如下:

if ($action == 'import') { //導入CSV   
    $filename = $_FILES['file']['tmp_name'];   
    if(emptyempty ($filename))   
    {   
        echo '請選擇要導入的CSV文件!';   
        exit;   
    }   
    $handle = fopen($filename, 'r');   
    $result = input_csv($handle); //解析csv   
    $len_result = count($result);   
    if($len_result==0)   
    {   
        echo '沒有任何數據!';   
        exit;   
    }   
    for($i = 1; $i < $len_result; $i++) //循環獲取各字段值   
    {   
        $name = iconv('gb2312', 'utf-8', $result[$i][0]); //中文轉碼   
        $sex = iconv('gb2312', 'utf-8', $result[$i][1]);   
        $age = $result[$i][2];   
        $data_values .= "('$name','$sex','$age'),";   
    }   
    $data_values = substr($data_values,0,-1); //去掉最后一個逗號   
    fclose($handle); //關閉指針   
    $query = mysql_query("insert into student (name,sex,age) values $data_values"); //批量插入數據表中   
    if($query)   
    {   
        echo '導入成功!';   
    }else{   
        echo '導入失?。?#39;;   
    }   
}  

 

注意php自帶的fgetcsv函數可以輕松處理csv,使用該函數可以從文件指針中讀入一行并解析CSV字段。下面的函數將csv文件字段解析并以數組的形式返回。

 

復制代碼代碼如下:

function input_csv($handle)   
{   
    $out = array ();   
    $n = 0;   
    while ($data = fgetcsv($handle, 10000))   
    {   
        $num = count($data);   
        for ($i = 0; $i < $num; $i++)   
        {   
            $out[$n][$i] = $data[$i];   
        }   
        $n++;   
    }   
    return $out;   
}  

 

此外在導入到數據庫中時,我們采用的是批量插入而不是一條條插入的,因此在構建SQL語句時,要稍作處理,見代碼。

2.導出CSV

我們知道csv文件是由逗號分割符組成的純文本文件,你可以用excel打開,效果跟xls表個一樣。
導出CSV處理流程:讀取學生信息表->循環記錄構建逗號分隔的字段信息->設置header信息->導出文件(下載)到本地

 

復制代碼代碼如下:

...   
}elseif ($action=='export') //導出CSV   
{   
    $result = mysql_query("select * from student order by id asc");   
    $str = "姓名,性別,年齡/n";   
    $str = iconv('utf-8','gb2312',$str);   
    while($row=mysql_fetch_array($result))   
    {   
        $name = iconv('utf-8','gb2312',$row['name']); //中文轉碼   
        $sex = iconv('utf-8','gb2312',$row['sex']);   
        $str .= $name.",".$sex.",".$row['age']."/n"; //用引文逗號分開   
    }   
    $filename = date('Ymd').'.csv'; //設置文件名   
    export_csv($filename,$str); //導出   
}  

 

要將數據導出到本地即下在,需要修改header信息,代碼如下:

 

復制代碼代碼如下:

function export_csv($filename,$data)   
{   
    header("Content-type:text/csv");   
    header("Content-Disposition:attachment;filename=".$filename);   
    header('Cache-Control:must-revalidate,post-check=0,pre-check=0');   
    header('Expires:0');   
    header('Pragma:public');   
    echo $data;   

 

注意導入和導出的過程中,因為我們使用的是統一UTF-8編碼,遇到中文字符一定要記得轉碼,否則可能會出現中文亂碼的情況。
好了,本文講解到此,后面我還會有文章介紹PHP結合mysql導入導出excel,以及xml的導入導出,敬請關注。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩欧美一区二区在线| 亚洲精品成人久久久| 久久av在线看| 欧美日韩国产精品一区二区不卡中文| 国产精品99久久久久久久久久久久| 色综合伊人色综合网| 97国产真实伦对白精彩视频8| 日韩欧美高清视频| 日韩欧美一区二区三区久久| 国产精品久久久久久久久| 国产精品热视频| 在线观看视频99| 在线成人免费网站| 精品爽片免费看久久| 国产精品视频免费在线| 久久久久久久97| 91久久久精品| 欧美成人精品xxx| 久久精品国产亚洲7777| 日本道色综合久久影院| 日韩成人中文电影| 青草热久免费精品视频| 久久久精品中文字幕| 国产suv精品一区二区| 国产精品一区二区三区在线播放| 亚洲va久久久噜噜噜久久天堂| 成人综合网网址| 91在线精品视频| 一区二区三区日韩在线| 日韩美女免费观看| 国产精品最新在线观看| 亚洲欧美综合区自拍另类| 欧美专区在线播放| 亚洲va国产va天堂va久久| 91美女片黄在线观看游戏| 91国产视频在线播放| 久久综合免费视频影院| 亚洲女成人图区| 欧美怡春院一区二区三区| 这里只有精品在线观看| 成人激情av在线| 日本sm极度另类视频| 亚洲欧洲成视频免费观看| 欧美在线免费观看| 亚洲免费视频在线观看| 亚洲最大在线视频| 国产成人精品优优av| 欧美日韩激情小视频| 久久综合亚洲社区| 国产日韩精品综合网站| 久久精品国产亚洲一区二区| 91视频国产一区| 一本色道久久88综合亚洲精品ⅰ| 欧美小视频在线| 尤物yw午夜国产精品视频明星| 亚洲国产天堂久久国产91| 亚洲三级av在线| 成人国产精品av| 在线播放精品一区二区三区| 久久久伊人欧美| 久久精品国产精品| 亚洲一区二区三区sesese| 亚洲第一av网| 青青久久av北条麻妃海外网| 久久久欧美一区二区| 亚洲一区二区三区乱码aⅴ| 亚洲另类激情图| 亚洲国产91精品在线观看| 国产精品天天狠天天看| 欧美黑人一区二区三区| 黑人狂躁日本妞一区二区三区| 精品国产一区二区三区四区在线观看| 日韩二区三区在线| www.美女亚洲精品| 色偷偷偷综合中文字幕;dd| 欧美裸体视频网站| 欧美日本在线视频中文字字幕| 91精品国产色综合久久不卡98| 26uuu国产精品视频| 亚洲欧洲第一视频| 欧美在线视频免费观看| 国产精品久久久久久影视| 亚洲视频免费一区| 精品调教chinesegay| 成人免费观看49www在线观看| 色综合久久中文字幕综合网小说| 色综合视频网站| 久久九九有精品国产23| 日本高清久久天堂| 91情侣偷在线精品国产| 国产成人+综合亚洲+天堂| 亚洲成**性毛茸茸| 性欧美长视频免费观看不卡| 亚洲欧美国产精品va在线观看| 久久亚洲精品小早川怜子66| 69视频在线免费观看| 少妇高潮久久久久久潘金莲| 亚洲尤物视频网| 久久人人爽人人爽人人片av高请| 国产婷婷色综合av蜜臀av| 久久久久久国产精品| 国产精品大陆在线观看| 欧美丝袜一区二区| 日韩在线免费视频观看| 国产精品亚洲自拍| 国内精品久久久| 久久久久久com| 国产亚洲人成网站在线观看| 欧美激情伊人电影| 亚洲精品综合久久中文字幕| 久久久噜久噜久久综合| 欧美日韩aaaa| 日韩网站免费观看高清| 国产丝袜一区二区| 国产啪精品视频网站| 国产精品自在线| 亚洲电影av在线| 青青草成人在线| 国产91精品视频在线观看| 九九精品在线播放| 中文字幕综合一区| 黑人极品videos精品欧美裸| 亚洲欧洲高清在线| 国产精品久久久久久婷婷天堂| 午夜精品一区二区三区在线视| 欧美中在线观看| 久久久免费精品视频| 欧美在线视频免费| 欧美日韩精品二区| 日韩免费高清在线观看| 亚洲欧美制服另类日韩| 国产日韩视频在线观看| 欧美激情亚洲自拍| 日韩综合视频在线观看| 国产91色在线|免| www.亚洲成人| 亚洲欧美日韩在线高清直播| 国产v综合v亚洲欧美久久| 日韩国产在线播放| 欧美大尺度在线观看| 亚洲欧美资源在线| 国产精品老牛影院在线观看| 欧美性生交大片免费| 久久久精品久久久| 精品国产乱码久久久久久天美| 日韩av网址在线观看| 欧美专区福利在线| 欧美国产日韩在线| 欧美影院成年免费版| 欧美精品18videos性欧美| 亚洲精品综合久久中文字幕| 黄网动漫久久久| 亚洲午夜小视频| 日韩欧美在线免费| 亚洲精品国产精品国自产观看浪潮| 黑人精品xxx一区| 在线视频国产日韩| 国产精品h片在线播放| 91久久久久久久久久| 色综合天天综合网国产成人网| 欧美又大又粗又长| 亚洲色图av在线| 亚洲深夜福利视频| 国产精品人成电影在线观看|