示例#1
0
 public static function writelog($file, $log)
 {
     global $timestamp, $_CHOBITS;
     $yearmonth = gmdate('Ym', $timestamp + $_CHOBITS['settings']['timeoffset'] * 3600);
     $logdir = NOWHERE_ROOT . './forumdata/logs/';
     $logfile = $logdir . $yearmonth . '_' . $file . '.php';
     if (@filesize($logfile) > 2048000) {
         $dir = opendir($logdir);
         $length = strlen($file);
         $maxid = $id = 0;
         while ($entry = readdir($dir)) {
             if (GlobalCore::strexists($entry, $yearmonth . '_' . $file)) {
                 $id = intval(substr($entry, $length + 8, -4));
                 $id > $maxid && ($maxid = $id);
             }
         }
         closedir($dir);
         $logfilebak = $logdir . $yearmonth . '_' . $file . '_' . ($maxid + 1) . '.php';
         @rename($logfile, $logfilebak);
     }
     if ($fp = @fopen($logfile, 'a')) {
         @flock($fp, 2);
         $log = is_array($log) ? $log : array($log);
         foreach ($log as $tmp) {
             fwrite($fp, "<?PHP exit;?>\t" . str_replace(array('<?', '?>'), '', $tmp) . "\n");
         }
         fclose($fp);
     }
 }