教程集 www.jiaochengji.com
教程集 >  脚本编程  >  php  >  正文 php导出excel(不断刷新缓冲区)的实例代码

php导出excel(不断刷新缓冲区)的实例代码

发布时间:2016-10-15   编辑:jiaochengji.com
本文介绍下,用php通过不断刷新缓冲区导出excel文件的方法,有需要的朋友参考下。

php导出excel文件,代码:

<?php
require('./db.class.php');
$DB = new db();
$DB->connect();//数据库链接

header("Content-Type: text/csv");
header("Content-Disposition:filename=php100.csv");
$sql = "select order_sn,consignee,address,tel,mobile,email,order_amount,add_time from order_info";//查询数据
$order = $DB->fetch_all($sql);

// 打开PHP文件句柄,php://output 表示直接输出到浏览器
$fp = fopen('php://output', 'a');
// 输出Excel列名信息

foreach($order[0] as $key=>$value){
$head[] = iconv('utf-8', 'gbk', $key);//头信息
}

// 将数据通过fputcsv写到文件句柄
//fputcsv($fp, $head);

// 计数器
$cnt = 0;
// 每隔$limit行,刷新一下输出buffer,不要太大,也不要太小
$limit = 100000;

// 逐行取出数据,不浪费内存
$count = count($order);

for($t=0;$t<$count;$t++) {

$cnt ++;
if ($limit == $cnt) { //刷新一下输出buffer,防止由于数据过多造成问题
ob_flush();
flush();
$cnt = 0;
}
foreach ($order[$t] as $i => $v) {
if($i == 'add_time') {
$row[$i] = iconv('utf-8', 'gbk', date('Y-m-d H:i:s',$v));
}else{
$row[$i] = iconv('utf-8', 'gbk', $v);
}
}
fputcsv($fp, $row);
unset($row);
}
?>

您可能感兴趣的文章:
php导出excel(不断刷新缓冲区)的实例代码
PHP导入与导出Excel文件的方法
深入理解php中ob_flush与flush的区别
php输出缓存ob系列函数用法
PHP基础之输出缓冲区基本概念、原理分析
php函数ob_start()、ob_end_clean()、ob_get_contents()
PHP生成静态页面的方法
PHP输出缓冲及其应用的例子
有关php的ob_flush()与flush()使用方法
用PHP的ob_start()控制您的浏览器cache

关键词: php导出excel  导出excel   
[关闭]
~ ~