小弟把网站管理员admin用户的操作日志都记录到数据库中,现在需要添加一个导出日志功能,具体可以用什么方法实现啊?
查找数据库-》把日志信息写入txt文件中-》提供用户下载。
请各位大牛帮帮忙谢谢
查找数据库-》把日志信息写入txt文件中-》提供用户下载。
请各位大牛帮帮忙谢谢
解决方案 »
- 大侠进!求一个正则表达式小语句~~~
- 讨论下面程序的好于坏
- 关于session的问题
- 在eclipse中安装Subclipse插件后,每个文件后面都显示版本,日期,邮箱的信息,很长很烦,请问如何让这些东西不显示?
- php 正则表达式的最后老是有/ims 这样的 这什么意思?
- 紧急求教: php+com+access问题. 其它都正常,就是不能更新记录. 奇怪
- 招聘开发工程师
- 选中下拉框中"other"值时就弹出一页面,输入值后按submit传回该值,加在下拉框的菜单中,用javascript怎么做?
- 在PHP中如何获得下来列表的值,不通过表单提交的。谢谢
- 新手求问一个,页面之间的传值问题
- 获取客户端网卡MAC地址
- preg_replace 正则替换,紧急求助,高手请进!!!
首先申请一个存储结果的全局变量$logs = '';
就是连接数据库,用select语句查询你的操作记录,将结果集返回给一个变量$res
再用foreach循环遍历这个变量$res,循环体中,将每一行记录都追加给$logsforeach($res as $key => $value){
$logs .= $value;
}然后用file_put_contents函数将变量$logs输出到文件即可。
//获取数据部分----------------------------------
//与数据库连接部分略,这个你自己写
$out = '';//定义输出变量
$query = mysql_query("select * form table where ...");//具体自己写
while($re = mysql_fetch_assoc($query)){
$out .= $re['字段名1']."--".$re['字段名2']."\n";//可以更多的字段,自己加
}
//写入文件部分-----------------------------------
$title = "backup";
$filepath = "data"; //输出文件的目录,
$filename = $title . ".txt"; //文件标题也可以用日期时间来表示
//$filename = date("Y-m-d H:i:s",time()).".txt";
//如果已经存在,就删除,并重新生成文件
$realfilename = dirname(__FILE__)."/data/".$filename ;
if(file_exists($realfilename)){
unlink($realfilename);
}
if($out !=''){
$out = strip_tags($out); if(!is_dir($filepath)){
mkdir($filepath);
}
if($fp = fopen($filepath."/".$filename,'w')){
if(fwrite($fp,$out)===FALSE){
echo "不能写入文件,请检查权限";
}
}else{
echo "不能打开文件,请检查权限";
}
fclose($fp);
}
//下载部分--------------------------------
//Begin下载到客户端开始
$downfile = $filepath .'/'.$filename;
header("Content-Type: application/force-download");
header("Content-Length: " . filesize($downfile));
header("Content-Disposition: attachment; filename=".$filename);
readfile($downfile);
//End下载到客户端结束
注意如果是linux niux空间 “data”文件夹要设置成可读写(0777);window空间没有限制。写入文件 和 下载 在本地已经测试通过了。
你可以把获取数据部分只用一句 : $out = 'this is test 这是测试'; 来验证下面代码的可用性。然后就可以专心做读数据的那部分。
把上面的文件保存成“down.php”
当你 点 “<a href="down.php">下载日志</a>”的时候, down.php就会读取数据库,并在data文件夹中生成 backup.txt文件,并且浏览器会自动弹出下载存储对话框,点确定,就可以保存到本地电脑。
两个文件:a.html down.php
在本目录下新建文件夹 data (window用户可以省略这一步,程序会自动生成)a.html<a href="down.php">下载日志</a>
down.php<?PHP
//数据获取部分$out = '这是测试';//由于没有你的数据库,所以只能用一个字符串来代替日志数据。//--------------------
//写入文件部分-----------------------------------
$title = "backup";
$filepath = "data"; //输出文件的目录,
$filename = $title . ".txt"; //文件标题也可以用日期时间来表示
//$filename = date("Y-m-d H:i:s",time()).".txt";
//如果已经存在,就删除,并重新生成文件
$realfilename = dirname(__FILE__)."/data/".$filename ;
if(file_exists($realfilename)){
unlink($realfilename);
}
if($out !=''){
$out = strip_tags($out); if(!is_dir($filepath)){
mkdir($filepath);
}
if($fp = fopen($filepath."/".$filename,'w')){
if(fwrite($fp,$out)===FALSE){
echo "不能写入文件,请检查权限";
}
}else{
echo "不能打开文件,请检查权限";
}
fclose($fp);
}
//下载部分--------------------------------
//Begin下载到客户端开始
$downfile = $filepath .'/'.$filename;
header("Content-Type: application/force-download");
header("Content-Length: " . filesize($downfile));
header("Content-Disposition: attachment; filename=".$filename);
readfile($downfile);
//End下载到客户端结束?>这个完全可用,本地验证通过。