php利用open,fwrite實現匯出多種格式的檔案(代碼)

來源:互聯網
上載者:User
本篇文章給大家帶來的內容是關於php利用open,fwrite實現匯出多種格式的檔案(代碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所協助。




源碼分析

<?php/** * Created by PhpStorm. * User: Jason0727 * Date: 2018/8/9 * Time: 14:48 */header("Content-Type: text/html;charset=utf-8");//定義檔案名稱 $fileName = "測試檔案名_" . date('YmdHis');//檔案名稱中間不能有空格//檔案名稱轉碼,以防亂碼 $fileName = iconv('UTF-8','GBK',$fileName);///檔案尾碼 $ext = ".csv";//$ext = ".txt";//欄位間的拼接符號// $dot = "|";$dot = ",";//開啟檔案控制代碼,記得賦權,否則報錯 $fp = fopen("./files/" . $fileName . $ext,"a") or die("unable to open file!");//是否需要列表名稱,0=>不需要 1需要,預設為1 $is_need_headerList = 1;//檢測是否需要 headerListif($is_need_headerList == 1){    //定義列表名稱    $headerList = ['列表1','列表2','列表3'];    //初始化寫入檔案的字串    $headerTxt = "";    //列表名稱轉碼    foreach ($headerList as $v){            $headerTxt .= $v. $dot;    }        $headerTxt = rtrim($headerTxt,$dot)."\n";    //將列表名稱寫入檔案控制代碼    fwrite($fp, $headerTxt);}//初始化數組資料$data = [    ['id'=>'值1','name'=>'值2','hobby'=>'值3'],    ['id'=>'值11','name'=>'值22','hobby'=>'值33'],    ['id'=>'值111','name'=>'值222','hobby'=>'值333']];//迴圈寫入資料//初始化數組的總數$count = count($data);//迴圈次數$limit = 0;foreach ($data as $v){    $limit++;    $txt = $v['id'] .$dot . $v['name'] .$dot .$v['hobby'];    if($count != $limit)//避免最後一次換行        $txt .= $dot .PHP_EOL;    fwrite($fp,$txt);}fclose($fp);

常見問題分析

  1. 字串中含有特殊的字元,在編碼轉換時,需要設定//IGNORE,否則會報錯

$c = "測試•字元傳換•五一快樂!";echo iconv('UTF-8','GBK//IGNORE',$c);//測試字元傳換五一快樂!echo iconv('UTF-8','GBK',$c);//Detected an illegal character in input string
  1. 數字字串會出現格式化的情況,需要加如看不見的字元使其正常化,如:”\t”

  2. 轉碼問題,特殊情況,特殊處理,視情況而定

連結:https://pan.baidu.com/s/1SFB3lPooUYl-cVv4QovNkA 密碼:2o6b

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.