Задать вопрос
Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (5)

Наибольший вклад в теги

Все теги (13)

Лучшие ответы пользователя

Все ответы (2)
  • Правка PHP скрипта, в роутере Asus, за вознаграждение?

    lFaTaL1Ty
    @lFaTaL1Ty Автор вопроса
    Итак решение было найдено и работа оплачена, к сожалению человек даже не хабравчанин (все таки поразительно какое огромное сообщество может помочь учитывая что многие просто читают, а не только пишут.)

    От автора
    Изменения для того, что бы выключать пользователей по дневному лимиту:

    В файле «FileExtractor.php» создадим дополнительную функцию «getUserTrafByThisDay» (чтобы особо не вдаваться, за основу возьмём уже готовую функцию «getUserTrafByDay» немного изменив её), получится:

    FileExtractor.php
    public function getUserTrafByThisDay(&$totalDay, &$totalIP) {
            $thisdate = date('Y-m-d');
            $handle1 = fopen($this->world.$thisdate, "r");
            $handle2 = fopen($this->city.$thisdate, "r");
            $sum['win'] = '0';
            $sum['wout'] = '0';
            $sum['cin'] = '0';
            $sum['cout'] = '0';
            while ($userinfo = fscanf($handle1, "%s\t%s\t%s\n")) {
                 $userByIp[$userinfo[0]]['win'] = $userinfo[1];
                  $userByIp[$userinfo[0]]['wout'] = $userinfo[2];
                  $sum['win'] = bcadd($sum['win'], $userinfo[1]);
                  $sum['wout'] = bcadd($sum['wout'], $userinfo[2]);
                   if (isset($totalIP[$userinfo[0]])) {
                       $totalIP[$userinfo[0]]['win'] = bcadd($totalIP[$userinfo[0]]['win'], $userinfo[1]);
                       $totalIP[$userinfo[0]]['wout'] = bcadd($totalIP[$userinfo[0]]['wout'], $userinfo[2]);
                   }
    	   else {
                       $totalIP[$userinfo[0]]['win'] = $userinfo[1];
                       $totalIP[$userinfo[0]]['wout'] = $userinfo[2];
                       $totalIP[$userinfo[0]]['cin'] = '0';
                       $totalIP[$userinfo[0]]['cout'] = '0';
                  }
            }
            while ($userinfo = fscanf($handle2, "%s\t%s\t%s\n")) {
                 $userByIp[$userinfo[0]]['cin'] = $userinfo[1];
                 $userByIp[$userinfo[0]]['cout'] = $userinfo[2];                    
                 $sum['cin'] = bcadd($sum['cin'], $userinfo[1]);
                 $sum['cout'] = bcadd($sum['cout'], $userinfo[2]);
                  if (isset($totalIP[$userinfo[0]])) {
                      $totalIP[$userinfo[0]]['cin'] = bcadd($totalIP[$userinfo[0]]['cin'], $userinfo[1]);
                      $totalIP[$userinfo[0]]['cout'] = bcadd($totalIP[$userinfo[0]]['cout'], $userinfo[2]);
                  }
                  else {
                       $totalIP[$userinfo[0]]['cin'] = $userinfo[1];
                       $totalIP[$userinfo[0]]['cout'] = $userinfo[2];
                  }
            }
            fclose($handle1);
            fclose($handle2);
            $trafByDay[$thisdate] = $userByIp;
            $totalDay[$thisdate] = $sum;
            unset ($userByIp);
            unset ($sum);
            return $trafByDay;
        }
    
    


    Убрали сканирование файлов в директории, теперь считываем файл с именем в виде текущей даты.

    Соответственно в скрипте, который устанавливает лимит «limit.php» меняем название функции, строка 31:

    $trafByDay = $fe->getUserTrafByDay($totalDay, $totalIP);

    на

    $trafByDay = $fe->getUserTrafByThisDay($totalDay, $totalIP);


    Если кому нибудь из пользователей не жалко поделитесь инвайтом с человеком.
    У меня к сожалению такой возможности нет, а человек толковый. Его почта rvk@polly.com.ua
    Ответ написан
    Комментировать

Лучшие вопросы пользователя

Все вопросы (5)