最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
php fputcsv函数将mysql数据库导出到excel文件
时间:2022-06-24 19:01:40 编辑:袖梨 来源:一聚教程网
fputcsv() 函数将行格式化为 CSV 并写入一个打开的文件。
该函数返回写入字符串的长度。若出错,则返回 false。。
说明
fputcsv() 将一行(用 fields 数组传递)格式化为 CSV 格式并写入由 file 指定的文件。
// 输出Excel文件头,可把user.csv换成你要的文件名
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="user.csv"');
header('Cache-Control: max-age=0');// 从数据库教程中获取数据,为了节省内存,不要把数据一次性读到内存,从句柄中一行一行读即可
$sql = 'select * from tbl where ……';
$stmt = $db->query($sql);// 打开PHP文件句柄,php教程://output 表示直接输出到浏览器
$fp = fopen('php://output', 'a');// 输出Excel列名信息
$head = array('姓名', '性别', '年龄', 'Email', '电话', '……');
foreach ($head as $i => $v) {
// CSV的Excel支持GBK编码,一定要转换,否则乱码
$head[$i] = iconv('utf-8', 'gbk', $v);
}// 将数据通过fputcsv写到文件句柄
fputcsv($fp, $head);// 计数器
$cnt = 0;
// 每隔$limit行,刷新一下输出buffer,不要太大,也不要太小
$limit = 100000;// 逐行取出数据,不浪费内存
while ($row = $stmt->fetch(Zend_Db::FETCH_NUM)) {$cnt ++;
if ($limit == $cnt) { //刷新一下输出buffer,防止由于数据过多造成问题
ob_flush();
flush();
$cnt = 0;
}foreach ($row as $i => $v) {
$row[$i] = iconv('utf-8', 'gbk', $v);
}
fputcsv($fp, $row);
}
参数 | 描述 |
---|---|
file | 必需。规定要写入的打开文件。 |
fields | 必需。规定要从中获得数据的数组。 |
seperator | 可选。规定字段分隔符的字符。默认是逗号 (,)。 |
enclosure | 可选。规定字段环绕符的字符。默认是双引号 "。 |
相关文章
- 《斗罗大陆:武魂觉醒》混沌之子魂骨搭配方案推荐 06-16
- 最火全球交易所数字资产交易TOP10-去中心化比特币交易所币安推荐 06-16
- 《大侠立志传》全丙级刀怎么获取 06-16
- Namada Token是什么意思?解析NAM代币背景与生态价值 06-16
- 最新2025正规虚拟币交易平台榜单-最安全现货交易app币安推荐 06-16
- 《宝可梦大集结》快龙技能详尽介绍 06-16