博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
创建目录并且将数据写入txt文件、删除指定目录下的文件
阅读量:6478 次
发布时间:2019-06-23

本文共 2208 字,大约阅读时间需要 7 分钟。

要求:将用户uid批量导出,并且每5000个放到一个txt文件中,使用英文逗号分隔用户uid; 思路:自定义一个文件夹,在每次导出的时候,先将这个文件夹中的文件删除,之后再重新导出新的文件,使用日期区分是否导出成功;一次性查出满足的所有数据,每5000条存入一个文件,可以使用array_chunk()函数分隔原始数组,之后再使用array_column()   函数取出数组中的uid这一列的数据,最后使用import()函数将uid组合成用英文逗号分隔的字符串,存入txt文件中。 sql查询使用ThinkPHP框架方式。 //批量导出数据并且写入txt文件中 public function export_uids(){
$filepath = $_SERVER['DOCUMENT_ROOT'].'/Uploads/downuids'; //创建目录 $dir = iconv("UTF-8", "GBK", $filepath); if (!file_exists($dir)){
mkdir ($dir,0777,true); } else {
//文件已存在,修改权限 chmod($dir, 0777); } //删除文件夹下所有的文件 $this->deldir($filepath); $presell = D('presell'); $map['p.organizationpath'] = array('EXP',"REGEXP '-3-'"); $map['p.classesid'] = array('EXP',"NOT REGEXP '5'"); $map['p.uid'] =array('NEQ',0); $map['u.phone'] =array('NEQ',''); $map['ut.device_token'] =array('NEQ',''); $result = $presell->alias('p')->field("p.uid")->join("LEFT JOIN `user` as u ON p.uid=u.id") ->join("LEFT JOIN `user_tuisong` as ut on ut.uid = u.id") ->where($map) ->order("p.uid asc") ->select(); $res_arr = array_chunk($result,5000);//将数组每5000条数据分一组 $uids_arr = array(); foreach($res_arr as $key => $val){
$uids_arr[$key] = trim(implode(',',array_column($val,'uid'))); } if(!empty($uids_arr) && count($uids_arr) != 0){
//写入到文件 foreach($uids_arr as $key => $val){
$filename = intval($key + 1).'-'.date('Ymd',time()).'.txt'; $fp2 = @fopen($filepath.'/'.$filename, "a"); fwrite($fp2, trim($val)); fclose($fp2); } echo 'success';exit; }else{
echo '没有查询到用户数据';exit; } } //删除文件夹内元素 function deldir($dir) {
//删除目录下的文件: $dh=opendir($dir); while ($file=readdir($dh)) {
if($file!="." && $file!="..") {
$fullpath=$dir."/".$file; if(!is_dir($fullpath)) {
unlink($fullpath); } else {
$this->deldir($fullpath); } } } closedir($dh); }

转载于:https://www.cnblogs.com/lfjblog/p/10613898.html

你可能感兴趣的文章
Priority VS Bandwidth
查看>>
携程加入百度系 OTA王座利好呈现
查看>>
学习使用SAMinside心得笔记
查看>>
SQL存储过程中的几个常见设定SET QUOTED_IDENTIFIER/NOCOUNT/XACT_ABORT ON/OFF
查看>>
第一部分:基础知识(第一章)第一个 Silverlight 手机程序
查看>>
Silverlight与Flash区别之一
查看>>
删除恢复Hadoop集群中的DataNode
查看>>
Silverlight 2动态创建矩形对象(附完整源代码)
查看>>
PowerShell中对属性设置别名
查看>>
从京东技术演进看互联网企业的成长历程
查看>>
MFC ado+mysql+odbc技术分享
查看>>
路由基本命令(含中文解释)
查看>>
js中让字符串中特定字符红色显示
查看>>
HttpClient4.5教程-第二章-连接管理
查看>>
Yeslab 马老师 V2V环境下vCenter Server Heartbeat v6.4实现vCenter5.0的双机备份
查看>>
linux下定时任务
查看>>
redhat Nginx 安装
查看>>
利用START命令入侵
查看>>
oracle 配置监听
查看>>
上海访微软 详解Azure和S+S
查看>>