<?php
require_once 'dbModel.php';
$db=new dbModel();
//定义文件名字
$filename='order_'.date('YmdHis').md5(uniqid(rand())).'.csv';
$fp=fopen($filename,'w');
//设置列名
$head=['id','编号','物品','价格','备注'];
foreach ($head as $i => $v) {
// CSV的Excel支持GBK编码,一定要转换,否则乱码
$head[$i] = iconv('utf-8', 'gbk', $v);
}
// 将列名通过fputcsv写到文件句柄
fputcsv($fp,$head);
$result=$db->select('order_info','*');
foreach ($result as $line){
foreach($line as $key => $item) {
// $line[$key] = iconv('UTF-8', 'GBK', $item);
//当报这个错误时候。用下面的编码iconv(): Detected an illegal character in input string
$line[$key] = mb_convert_encoding($item,"GBK","UTF-8");
}
fputcsv($fp, $line);
}
fclose($fp);
echo (json_encode($filename));
php导出csv,电话之类的长数字会变成科学计数。
在php中对电话这个字段处理一下即可:
$result=$db->select('li_store_orders',["goodId","goodTitle","telPhone","payPrice","realName"]);
// var_dump($result);
foreach ($result as $line){
$line["telPhone"]=$line["telPhone"]."\t";
foreach($line as $key => $item) {
// $line[$key] = iconv('UTF-8', 'GBK', $item);
$line[$key] = mb_convert_encoding($item,"GBK","UTF-8");
}
fputcsv($fp, $line);
}