(60 * 60 * $cycle)) { $aryages = read_backup($filename); if(count($aryages) >= $maxage) { array_shift($aryages); } foreach($aryages as $lines) { foreach($lines as $key => $line) { if($key && $key == "timestamp") { $arystrout[] = "$splitter " . rtrim($line); } else { $arystrout[] = rtrim($line); } } } $strout = join("\n",$arystrout); if(!preg_match("/\n$/",$strout) && trim($strout)) $strout .= "\n"; $body = "$splitter " . $oldtime . "\n" . $body; if(!preg_match("/\n$/",$body)) $body .= "\n"; $fp = backup_fopen($realfilename,"w"); backup_fputs($fp,$strout); backup_fputs($fp,$body); backup_fclose($fp); } return true; } // 特定の世代のバックアップデータを取得 function get_backup($age,$filename) { $aryages = read_backup($filename); $retvars = array(); foreach($aryages as $key => $lines) { if($key != $age) continue; foreach($lines as $key => $line) { if($key && $key == "timestamp") continue; $retvars[] = $line; } } return $retvars; } // バックアップ情報を返す function get_backup_info($filename) { global $splitter; $lines = array(); $retvars = array(); $lines = backup_file(BACKUP_DIR.$filename); if(!is_array($lines)) return array(); $age = 0; foreach($lines as $line) { preg_match("/^$splitter\s(\d+)$/",trim($line),$match); if($match[1]) { $age++; $retvars[$age] = $match[1]; } } return $retvars; } // バックアップデータ全体を取得 function read_backup($filename) { global $splitter; $lines = array(); $lines = backup_file(BACKUP_DIR.$filename); if(!is_array($lines)) return array(); $age = 0; foreach($lines as $line) { preg_match("/^$splitter\s(\d+)$/",trim($line),$match); if($match[1]) { $age++; $retvars[$age]["timestamp"] = $match[1] . "\n"; } else { $retvars[$age][] = $line; } } return $retvars; } // バックアップ一覧の取得 function get_backup_list($_page="") { global $script,$date_format,$time_format,$weeklabels,$cantedit; global $_msg_backuplist,$_msg_diff,$_msg_nowdiff,$_msg_source; $ins_date = date($date_format,$val); $ins_time = date($time_format,$val); $ins_week = "(".$weeklabels[date("w",$val)].")"; $ins = "$ins_date $ins_week $ins_time"; if (($dir = @opendir(BACKUP_DIR)) && !$_page) { while($file = readdir($dir)) { if(function_exists(gzopen)) $file = str_replace(".txt",".gz",$file); if($file == ".." || $file == ".") continue; $page = decode(trim(preg_replace("/(\.txt)|(\.gz)$/"," ",$file))); if(in_array($page,$cantedit)) continue; $page_url = rawurlencode($page); $name = $page; $name = strip_bracket($name); if(is_page($page)) $vals[$name]["link"] = "
  • $name
  • "; else $vals[$name]["link"] = "
  • $name
  • "; $vals[$name]["name"] = $page; } closedir($dir); $vals = list_sort($vals); $retvars[] = "