1. 程式人生 > >原生php通過fopen,fwrite匯出多種格式的檔案

原生php通過fopen,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; //檢測是否需要headerList if($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);