cookie в txt файлах

Discussion in 'PHP' started by GAiN, 1 Mar 2016.

  1. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    Добрый день!
    хочу сделать кеширование curl запросов парсера, что бы новый ip делал первый запрос, а все остальные уже были закешированы, сделал такое на сессиях, но боты работают без сессий, и каждый запрос бота не кешируется.

    хочу ip превращять в Md5 значение и сохранять файлик txt - имя которого будет ip в md5.

    при повторном запросе скрипт преобразовывает Ip в md5 и ищет эти txt куки в определённой папке, если имя найдено такого файла, то запрос повторный не делать.
    Если ip сменился и такого не найдено в папке файла, то создать его.

    в тхт файл хочу записать данные geo ip которые могу дальше применять для работы.
    после файлы можно старые удалять, скрипт через крон раз в 3 дня проверит по дате создания файла, и удалит старые файлы.

    помогите пожалуйста реализовать такой метод работы с txt файлами ?
     
  2. dondy

    dondy Member

    Joined:
    5 Jun 2015
    Messages:
    560
    Likes Received:
    61
    Reputations:
    5
    Можно так реализовать
    PHP:
    <?php

    if (file_exists('info.txt')) //проверяем, существует ли файл
    {
    //получаем контент из файла по имени
    }
    else
    {
    $fp fopen("info.txt","w");//если файла info.txt не существует, создаем его
    $user 'IP адрес: '$_SERVER['REMOTE_ADDR'] . 'Браузер: ' $_SERVER['HTTP_USER_AGENT'] . "\r";//записываем в переменную $user IP адрес и тип браузера (используем конкатенацию).
    fwrite($fp$user);//записываем в файл
    fclose($fp);//закрываем файл.
    }
    ?>
     
    GAiN likes this.
  3. roxblnfk

    roxblnfk Elder - Старейшина

    Joined:
    6 Feb 2010
    Messages:
    189
    Likes Received:
    42
    Reputations:
    19
    Наличие ФАЙЛА лучше чекать через is_file
    При открытии файла не забываем flock.. да и флаг b не лишний был бы. Однако в предложенном случае лучше использовать file_put_contents.
    Данные в таком формате будет не очень удобно и читать, и парсить. В зависимости от целей можно было бы нужные значения записывать в ini/json формате