ecshop导出会员邮箱
效果:
可导出一行一个,或一行多个且分号隔开,方便复制群发。
思路:后台“会员管理”里面增加一个“导出会员”的按钮来执行一个导出文件的函数,这个函数里面就写着,查会员表,拿得会员的所有邮箱,用header();导出txt文件。
1,admin/templates/users_list.htm,添加导出按钮
<form action="javascript:searchUser()" name="searchForm"> <img src="images/icon_search.gif" width="26" height="22" border="0" alt="SEARCH" /> {$lang.label_rank_name} <select name="user_rank"><option value="0">{$lang.all_option}</option>{html_options options=$user_ranks }</select> {$lang.label_pay_points_gt} <input type="text" name="pay_points_gt" size="8" /> {$lang.label_pay_points_lt} <input type="text" name="pay_points_lt" size="10" /> {$lang.label_user_name} <input type="text" name="keyword" /> <input type="submit" value="{$lang.button_search}" /> <input type="button" name="export" value="导出邮箱" onclick="location.href='users.php?act=export';" class="button" /> </form>
2、admin/users.php,在最后一个elseif 后面添加代码
/*------------------------------------------------------ */ //-- 导出邮箱 /*------------------------------------------------------ */ elseif ($_REQUEST['act'] == 'export') { $sql = "SELECT email FROM " . $ecs->table('users'); $emails = $db->getAll($sql); $out = ''; foreach ($emails as $key => $val) { if (empty($val[email])) { continue; } else { $out .= "$val[email]n"; //一行一个 /* 一行50个且分号隔开,方便复制群发。 if (($key+1) % 50 == 0) { $out .= "$val[email]n"; } else { $out .= "$val[email];"; }*/ } } //保存文件 $contentType = 'text/plain';//输出类型 $len = strlen($out); header('Last-Modified: ' . gmdate('D, d M Y H:i:s',time()+31536000) .' GMT');//告诉浏览器此页面的最后更新日期 header('Pragma: no-cache');//告诉客户端浏览器不使用缓存 header('Content-Encoding: none');//返回内容压缩编码类型 如:gzip header('Content-type: ' . $contentType);//输出类型 header('Content-Length: ' . $len);//文件长度 header('Content-Disposition: attachment; filename="users_email.txt"');//文件保存对话框中的文件名称 echo $out; exit; }
关于《HTTP Header 详解》可以查阅这篇文章。
End!
阅读剩余
版权声明:
作者:z1988
链接:https://www.z1988.com/298.html
文章版权归作者所有,未经允许请勿转载。
作者:z1988
链接:https://www.z1988.com/298.html
文章版权归作者所有,未经允许请勿转载。
THE END