PHP导出数据为CSV
PHP导出数据为CSV格式,PHP导出CSV类编写,自定义一个CSV导出类,持续性的写入到文件,制表符\t边界处理
<?php /** * 数据导出为csv * User: lys * Date: 2019/7/22 * Time: 16:51 */ class PHPCsv{ /** * @param string $filedir * @param string $fileName * @param array $headArr * @param array $data * @return bool|string */ public static function createCsv($filedir = '',$fileName = '',$headArr = [],$data = []){ if(empty($filedir) || empty($fileName) || empty($fileName) || empty($headArr) || !is_array($data) ){ return false; } //文件夹 if(!is_dir($filedir)){ mkdir($filedir,0777,true); } $filedir = realpath($filedir); //不存在的文件使用该函数返回的是false //路径 $fileName .= date('Y-m-d_His',time()).'.csv'; $filePath = $filedir.'/'.$fileName; //生成csv文件 $fp = fopen($filePath, 'w'); $header = implode("\t,", $headArr)."\t" . PHP_EOL; $header = iconv("UTF-8", "GBK//IGNORE", $header); $content = ''; foreach($data as $line => $val) { $values = array_values($val); $str = implode("\t,", $values)."\t" . PHP_EOL; $content .= iconv("UTF-8", "GBK//IGNORE", $str); } $csv = $header.$content; // 写入数据 fwrite($fp,$csv); //关闭文件句柄 fclose($fp); return $filePath; } /** * 数据添加 * @param string //文件路径 * @param array $data //数据 * @return string */ public static function appendCsv($filePath,$data = []){ $fp = fopen($filePath, 'aw+'); $content = ''; foreach($data as $line => $val) { $values = array_values($val); $str = implode("\t,", $values) ."\t" . PHP_EOL; $content .= iconv("UTF-8", "GBK//IGNORE", $str); } $csv = $content; // 写入数据 fwrite($fp,$csv); //关闭文件句柄 fclose($fp); return $filePath; } }