小弟把网站管理员admin用户的操作日志都记录到数据库中,现在需要添加一个导出日志功能,具体可以用什么方法实现啊?
查找数据库-》把日志信息写入txt文件中-》提供用户下载。
请各位大牛帮帮忙谢谢

解决方案 »

  1.   

    查找数据库-》把日志信息写入txt文件中-》提供用户下载。不就这样吗你都很清楚了啊
      

  2.   

    进入一个页面直接弹出对话框下载,相当于点击过<a href="test.tex">链接一样
      

  3.   

    说的详细一点,
    首先申请一个存储结果的全局变量$logs = '';
    就是连接数据库,用select语句查询你的操作记录,将结果集返回给一个变量$res
    再用foreach循环遍历这个变量$res,循环体中,将每一行记录都追加给$logsforeach($res as $key => $value){
       $logs .= $value;
    }然后用file_put_contents函数将变量$logs输出到文件即可。
      

  4.   


    //获取数据部分----------------------------------
      //与数据库连接部分略,这个你自己写
      $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 这是测试'; 来验证下面代码的可用性。然后就可以专心做读数据的那部分。
      

  5.   

    你要的这个功能显然是给管理员用的,
    把上面的文件保存成“down.php”
    当你 点 “<a href="down.php">下载日志</a>”的时候, down.php就会读取数据库,并在data文件夹中生成 backup.txt文件,并且浏览器会自动弹出下载存储对话框,点确定,就可以保存到本地电脑。
      

  6.   

    做了一个完整版的:
    两个文件: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下载到客户端结束?>这个完全可用,本地验证通过。