下面的例子是导出网站用户1的所有文章名,每次取出100个文章
set_time_limit(0); //封装好的函数 function GetAllData($method, $w, $o, $limit, $callback){ global $zbp; $page = 1; do{ $p = new Pagebar('', false); $p->PageNow = $page++; $p->PageCount = $limit; $array = $zbp->$method( '*', $w, $o, array(($p->PageNow - 1) * $p->PageCount, $p->PageCount), array('pagebar' => $p), false ); $complete = !$limit || $limit * $p->PageNow >= $p->Count; $res = $callback($array, $p, $complete); if ($res === false){ break; } $zbp->posts = []; //清空zb内存中的文章缓存,防止内存溢出 }while(!$complete); } //例:导出所有用户1的文章名 header("Content-Disposition:attachment;filename=posts.txt"); //调用本站封装好的函数 GetAllData('GetArticleList', array(array('=','log_AuthorID',1)), array('log_PostTime' => 'DESC'), 100, function($articles, $pagebar, $complete){ // $pagebar pagebar分页对象 if ($complete){ //已取出全部 }else{ //还有数据未取出 } //执行你的代码 foreach ($articles as $article) { echo iconv("UTF-8","GB2312//IGNORE", $article->Title."\n"); } ob_flush(); flush(); //结束你自己的代码 //return false; //终止,即便还有数据未取出,也不会再去取,也不会执行回调函数。如果继续执行,请不要添加此代码 });
本文创建于:2022年02月06日,最后更新于:2022年02月25日,已超过 1161 天没更新!内容可能已失效,请自行测试,失效请评论区反馈,谢谢啦~