当前位置: 首页 > news >正文

武汉小程序开发公司/西安区seo搜索排名优化

武汉小程序开发公司,西安区seo搜索排名优化,wordpress 管理员标签,淘宝优惠券 如果做网站开发中经常遇到需要从数据库导出大量数据的问题,导出excel需要占用太多内存,最终回导致内存溢出而失败。csv是更好的选择。同时可以使用php5.5之后赋予的新功能——yield(生成器)来优化性能,具体可以看鸟哥博客http://www.laruence.com/tag/y…

开发中经常遇到需要从数据库导出大量数据的问题,导出excel需要占用太多内存,最终回导致内存溢出而失败。csv是更好的选择。同时可以使用php5.5之后赋予的新功能——yield(生成器)来优化性能,具体可以看鸟哥博客http://www.laruence.com/tag/yield

/**

* 分段导出所有用户

*/

public function exportAll()

{

set_time_limit(0);

$count = D('user')->count();

$num = 0;

$f = null;

foreach ($this->getCounts($count,function($fp) use (&$f){

$f = $fp;

}) as $value) {

$num++;

if (1000 === $num) {

ob_flush();

flush();

$num = 0;

}

foreach ($value as $v) {

fputcsv($f,$v);

}

fclose($f);

}

//导出合并后的文件

$this->mergeFile(function($file){

error_reporting(0);

header("Cache-Control: max-age=0");

header("Content-Description: File Transfer");

header('Content-disposition: attachment; filename=songdaozong.csv'); // 文件名

header("Content-Type: application/csv");

header("Content-Transfer-Encoding: binary");

header('Content-Length: ' . filesize($file));

readfile($file);//输出文件;

self::clearFile();

});

}

/**

* 获取阶段导出数据

*/

private function getCounts($count,$handle)

{

$pageCount = ceil($count/1000);

for ($i=0; $i < $pageCount; $i++) {

$file = __DIR__ . '/_' . $i . '.csv';

touch($file);

$fp = fopen($file, 'w'); //生成临时文件

if ($handle instanceof \closure) {

$handle($fp);

}

yield D('user')->limit($i*1000,1000)->select();

}

}

/**

* 处理数组格式

*/

private static function makeArray(array $data)

{

$new = [];

foreach ($data as $key => $value) {

$new[] = array_values($value);

}

return $new;

}

/**

* 合并文件

*/

private function mergeFile($handle)

{

$fileList = glob(__DIR__.'/*.csv');

$count = count($fileList);

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

if ($i > 0) {

file_put_contents($fileList[0],file_get_contents($fileList[$i]),FILE_APPEND);

}

}

if ($handle instanceof \closure) {

$handle($fileList[0]);

}

}

/**

* 清除文件

*/

private static function clearFile()

{

error_reporting(0);

$fileList = glob(__DIR__.'/*.csv');

foreach ($fileList as $value) {

unlink($value);

}

}

作者:日落之国

http://www.jmfq.cn/news/5215573.html

相关文章:

  • 深圳专业优定软件网站建设/电商代运营收费标准
  • 手机版网站做一下多少钱/百度软件中心官网
  • 网站系统建设需要什么/短期培训班学什么好
  • 聊城冠县网站建设/百度app下载
  • 为什么要建设网站/网站keywords
  • 科技经济导刊官网/福建seo网站
  • 做网页引用别的网站的视频/百度seo正规优化
  • 手机建站程序免费下载/短视频营销方式有哪些
  • 抖音推广运营/太原seo哪家好
  • 张家港做政府网站的公司/东莞seo关键词排名优化排名
  • 宝塔做网站/郑州见效果付费优化公司
  • 网站建设 技术 哪些内容/数据分析师要学什么
  • wordpress页面添加新闻/pc网站优化排名软件
  • 空间坐标系做图网站/seo快速排名代理
  • 建设工程材料登记备案申请网站/全网搜索引擎
  • 注册城乡规划师值钱吗/澳门seo推广
  • 西安网站制作平台/新浪新闻疫情
  • 专业做网站公司济南/网络广告投放网站
  • 永康城乡建设局网站/宣传软文范例
  • 个人网站设计实验原理/电商营销策划方案范文
  • 个人电脑做网站打不开数据库/营销推广的工具有哪些
  • jsp怎么做视频网站/北京seo专员
  • app模板下载网站/电商平台哪个最好最可靠
  • 济南手机建站模板/中国十大公关公司排名
  • 中国建设银行网站特色/免费ip地址代理
  • 微信公众号登录wordpress网站吗/虞城seo代理地址
  • html网站如何做seo/做引流推广的平台600
  • 湖州网站建设培训/谷歌广告代理
  • 沂南做网站/怎么做网站推广
  • 邯郸wap网站制作/近期出现的病毒叫什么