Как воткнуть свой список IP\парам. UA?

Тема в разделе "Thunder 3.X", создана пользователем ddn128, 23 июл 2017.

  1. ddn128

    ddn128 Опытный Пользователь

    31 дек 2015
    520
    238
    Мужской
    Собственно, чтобы не втыкать мильёны строк с IP или параметрами UA в клоаке - захотелось вынести это всё в отдельные списки (.txt)
    Но вот вопрос как их подключить?
    Я с этими грёбанными классами никак не могу разобраться :(
    т.е. вроде бы (казалось бы :) )
    Код:
    private $myBot = file('/plugins/bots/my_ip.txt');
    в plugins/Cloaking.php
    но нет, естественно.
    Как это сделать правильно?
    Допустим списки лежат в папке "/plugins/bots/" ну или в какой-то другой, если plugins низзя по каким-то религиозным или др. причинам.
    ну а сами файлы - bot_ip_google.txt, bot_ip_yandex.txt и т.д.
    ну и UA (не обязательно, но желательно) - bot_ua.txt
    Спасибо
     
  2. Art

    Art Участник

    23 фев 2017
    28
    9
    Мужской
    php\html\css developer
    Думаю вот так можно сделать по простому:
    Код:
        
    private $myBot = [];
    
        function __construct ($container = null) {
    
            $this->container = $container;
    
            $this->myBot = file($container->settings['path_to_bots']);
    
            var_dump($this->myBot);
    }
     
  3. ddn128

    ddn128 Опытный Пользователь

    31 дек 2015
    520
    238
    Мужской
    не хотит :(

    293 строка (после private $botYoudao = ... ) -
    Код:
        function __construct ($container = null) {
    
            $this->container = $container;
            $this->device = new Mobile_Detect();
           
            $server = $container->request->getServerParams();
    
            $this->userIp = $server['REMOTE_ADDR'];
    
            if(!empty($server['HTTP_USER_AGENT'])) {
    
                $this->userAgent = $server['HTTP_USER_AGENT'];
            } else {
    
                $this->userAgent = [
                    'name' => 'unrecognized',
                    'version' => 'unknown',
                    'platform' => 'unrecognized',
                    'userAgent' => ''
               ];
            }       
    
        }
     
  4. Art

    Art Участник

    23 фев 2017
    28
    9
    Мужской
    php\html\css developer
    А где функция file выполняется сейчас?
     
  5. ddn128

    ddn128 Опытный Пользователь

    31 дек 2015
    520
    238
    Мужской
    Перед
    private $botAlexa = ...

    263 строка
     
  6. Art

    Art Участник

    23 фев 2017
    28
    9
    Мужской
    php\html\css developer
    #6 Art, 23 июл 2017
    Последнее редактирование: 23 июл 2017
    Так не будет работать. Нужно ее в конструкторе выполнять (или в другом методе) и присваивать $this->myBot;.
    И потом уже в любый других методах можно использовать.

    Вот это рабочий вариант - получает массив всех строк файла. Я проверил.

     

Поделиться этой страницей