自己加了一个导出未使用的邀请码功能,可惜我不是入驻作者,没有权限发布,之前被一条大河拒了,他说我抄他代码,不给我过审还冷嘲热讽,我一气之下,就没继续申请了,话说我是专业搞java开发的,并且我当时是第一次尝试php插件开发,用别人的文件框架,里面修改自己的东西怎么了,你tm的就没用过复制粘贴,草
言归正传
下面是功能代码,想用的可以自己加
main.php里两处
第一处:
<input type="submit" class="button" onclick="$('#reset').val('outcsv');" value="导出所有未使用邀请码(csv)" />
第二处:
if (GetVars('reset', 'POST') == 'outcsv') {
day_Out_Csv();
}
然后就是include.php里的
加载最后即可
function day_Out_Csv(){
global $zbp;
$day_invitecode_Table = '%pre%day_invitecode';
$day_invitecode_DataInfo = array(
'ID' => array('reg_ID', 'integer', '', 0),
'InviteCode' => array('reg_InviteCode', 'string', 50, ''),
'AuthorID' => array('reg_AuthorID', 'integer', '', 0),
'IsUsed' => array('reg_IsUsed', 'boolean', '', false),
'IP' => array('reg_IP', 'string', 50, ''),
'Time' => array('reg_Time', 'integer', '', 0),
);
$sql = $zbp->db->sql->Select($day_invitecode_Table, '*', array(array('=', 'reg_AuthorID', 0), array('=', 'reg_AuthorID', 0)), null, null, null);
$array = $zbp->GetListCustom($day_invitecode_Table, $day_invitecode_DataInfo, $sql);
$sql = "SELECT * FROM users";
$result =$array;
$length = count($result);
if ($length > 0) {
$filename = "file";
if(!is_readable($filename))
{
is_file($filename) or mkdir($filename,0700);
}
$filename = 'file/yqm_csv.csv';
if (file_exists($filename)) {
unlink($filename);
}
$file = fopen($filename, "w");
stream_filter_prepend($file, 'convert.iconv.utf-8/gbk');
fputcsv($file, array('id', '邀请码'));
for($i = 0; $i < $length; $i++) {
$data = json_decode($result[$i]);
$nar = array();
$nar[0]=$i+1;
$nar[1]=$data->InviteCode;
fputcsv($file, $nar);
}
fclose($file);
}
#下载文件
$file_path = 'file/yqm_csv.csv';
if (file_exists($file_path))
{
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . basename($file_path));
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($file_path));
readfile($file_path);
exit;
}
else
{
die('File not found.');
}
}
实现功能如下:
文件会先生成在插件同目录下,每次生产会先删除之前,的下载路径是在后台登录时可下载
不用担心黑客通过文件访问下载,只要你的后台没有被攻入,就没有权限在不登录的情况下下载