diff --git a/hwe/a_traffic.php b/hwe/a_traffic.php
index 4038c8fe..483e061e 100644
--- a/hwe/a_traffic.php
+++ b/hwe/a_traffic.php
@@ -12,34 +12,19 @@ $gameStor = KVStorage::getStorage($db, 'game_env');
increaseRefresh("갱신정보", 1);
-$admin = $gameStor->getValues(['year', 'month', 'refresh', 'maxrefresh', 'maxonline']);
+$admin = $gameStor->getValues(['year', 'month', 'refresh', 'maxrefresh', 'maxonline', 'recentTraffic']);
-$log = getRawFileLogRecent(__DIR__ . '/logs/' . UniqueConst::$serverID . '/_traffic.txt', 11, 100);
-
-$date = [];
-$year = [];
-$month = [];
-$refresh = [];
-$online = [];
+$recentTraffic = $admin['recentTraffic'] ?? [];
$curonline = getOnlineNum();
-foreach ($log as $i => $value) {
- $parse = Json::decode($value);
- if (is_array($parse) === false) {
- continue;
- }
- if (count($parse) < 5) {
- continue;
- }
- $date[$i] = $parse[0];
- $year[$i] = $parse[1];
- $month[$i] = $parse[2];
- $refresh[$i] = $parse[3];
- $online[$i] = $parse[4];
-}
-$year[] = $admin['year'];
-$month[] = $admin['month'];
-$date[] = TimeUtil::now();
+
+$recentTraffic[] = [
+ 'year' => $admin['year'],
+ 'month' => $admin['month'],
+ 'refresh' => $admin['refresh'],
+ 'online' => $curonline,
+ 'date' => TimeUtil::now()
+];
if ($admin['maxrefresh'] == 0) {
$admin['maxrefresh'] = 1;
@@ -113,13 +98,13 @@ if ($admin['maxonline'] < $curonline) {
$value) {
+ foreach ($recentTraffic as $trafficItem) {
+ $value = $trafficItem['refresh'];
$w = round($value / $admin['maxrefresh'] * 100, 1);
$color = getTrafficColor($w);
- $dt = substr($date[$i], 11, 5); ?>
+ $dt = substr($trafficItem['date'], 11, 5); ?>
- | = $year[$i] ?>년 = $month[$i] ?>월 |
+ = $trafficItem['year'] ?>년 = $trafficItem['month'] ?>월 |
= $dt ?> |
|
@@ -154,13 +139,13 @@ if ($admin['maxonline'] < $curonline) {
|
$value) {
+ foreach ($recentTraffic as $trafficItem) {
+ $value = $trafficItem['online'];
$w = round($value / $admin['maxonline'] * 100, 1);
$color = getTrafficColor($w);
- $dt = substr($date[$i], 11, 5); ?>
+ $dt = substr($trafficItem['date'], 11, 5); ?>
- | = $year[$i] ?>년 = $month[$i] ?>월 |
+ = $trafficItem['year'] ?>년 = $trafficItem['month'] ?>월 |
= $dt ?> |
|
diff --git a/hwe/func.php b/hwe/func.php
index e8b198e9..ad3792d9 100644
--- a/hwe/func.php
+++ b/hwe/func.php
@@ -1070,7 +1070,7 @@ function updateTraffic()
$online = getOnlineNum();
$db = DB::db();
$gameStor = KVStorage::getStorage($db, 'game_env');
- $admin = $gameStor->getValues(['year', 'month', 'refresh', 'maxonline', 'maxrefresh']);
+ $admin = $gameStor->getValues(['year', 'month', 'refresh', 'maxonline', 'maxrefresh', 'recentTraffic']);
/** @var array{year:int,month:int,refresh:int,maxonline:int,maxrefresh:int} $admin */
if ($admin['maxrefresh'] < $admin['refresh']) {
@@ -1083,6 +1083,19 @@ function updateTraffic()
$gameStor->maxrefresh = $admin['maxrefresh'];
$gameStor->maxonline = $admin['maxonline'];
+ $recentTraffic = $admin['recentTraffic'] ?? [];
+ if(count($recentTraffic) >= 5){
+ array_shift($recentTraffic);
+ }
+ $recentTraffic[] = [
+ 'year'=>$admin['year'],
+ 'month' => $admin['month'],
+ 'refresh' => $admin['refresh'],
+ 'online' => $admin['maxonline'],
+ 'date' => TimeUtil::now(),
+ ];
+ $gameStor->recentTraffic = $recentTraffic;
+
$db->update('general_access_log', ['refresh' => 0], true);
}
|