Количество обращений к файлу

Тема в разделе "Как сделать...", создана пользователем dmbltro, 15 фев 2012.

  1. dmbltro

    dmbltro Создатель

    Регистр.:
    18 фев 2010
    Сообщения:
    47
    Симпатии:
    4
    Не знаю как правильней и сказать. Попробую так: есть php файл, который генерирует картинку. Как подсчитать сколько раз за сутки к этому файлу обращаются для создания картинки. Когда-то вставлял счетчик от cnstats ( *facepalm* ), но это вообще туповато, да и файлов много сильно.
     
  2. BaziliX

    BaziliX Постоялец

    Регистр.:
    2 авг 2007
    Сообщения:
    85
    Симпатии:
    12
    А что мешает в сам php файл вписать скриптик учёта статистики?
     
  3. Дмитрий Кесаев

    Дмитрий Кесаев aka Zlobniy Babko

    Заблокирован
    Регистр.:
    10 май 2007
    Сообщения:
    1.332
    Симпатии:
    1.265
    Типа такого...

    PHP:
    <?php
    $url 
    "count.txt";
    if (
    file_exists($url)==false)
    {
    $handle fopen($url"w");
    $count 0;
    fwrite($handle$count);
    fclose($handle);
    }
    else
    {
    $file file($url);
    $count $file[0];
    }
    $count++;
    $handle fopen($url"w");
    fwrite($handle$count);
    fclose($handle);
    echo 
    "
     
    <div style=display:none>"
    .($count)."
    </div>"
    ;
    ?>
    Никто видеть не будет, будут скрыты цыфры... Смотреть через исходный код станицы...
    Можно ДИВ и убрать...
    На файл count.txt атрибуты 0666 стаить...
     
    dmbltro нравится это.
  4. dmbltro

    dmbltro Создатель

    Регистр.:
    18 фев 2010
    Сообщения:
    47
    Симпатии:
    4
    незнание мешает(…

    А вот за код такой спасибо тебе большое! =) Всё работает, в файл пишет)

    А где хорошо написано про работу с тхт файлами? Интересуют функции открыть, прочитать, стереть, ну и им подобные
     
  5. dmbltro

    dmbltro Создатель

    Регистр.:
    18 фев 2010
    Сообщения:
    47
    Симпатии:
    4
    И ещё важное. На сайте, допусти, 30 папок и в каждой лежит php файл, к которому считаются обращения. Код для подсчета вставляю в начало каждого. Можно сделать так, чтобы со всех php файлов данные писались не в отдельные, а в один txt?
    ===================
    С этим разобрался, поменял $url = "count.txt"; на $url = "../count.txt";
     
  6. Дмитрий Кесаев

    Дмитрий Кесаев aka Zlobniy Babko

    Заблокирован
    Регистр.:
    10 май 2007
    Сообщения:
    1.332
    Симпатии:
    1.265
    PHP:
    <?php
        $filename 
    'count.txt';
        if (!
    $handle fopen($filename'w+"'))  {
            echo 
    "Не могу '$filename' " ;
            exit;
        }
        else
        {
            echo 
    "Я открыл '$filename' " ;
        }
        
    $content fread($handlesizeof($filename));
        
    $content str_replace'Pesnike' 'OldPes' $content);
        if (
    fwrite($handle$content) === FALSE) {
            echo 
    "Лажа!";
            exit;
        }
        else
        {
            echo 
    "Cool";
        }
        
    fclose($handle);
    ?>
    Поставь этот файл на крон, чтоб каждые 24 часа он отчищал txt файл count.txt


    Запись в 1н txt файл - не могу сказать, не проверял.
     
    dmbltro нравится это.
  7. dmbltro

    dmbltro Создатель

    Регистр.:
    18 фев 2010
    Сообщения:
    47
    Симпатии:
    4
    Всё работает, спасибо
     
  8. Arqin

    Arqin

    Регистр.:
    17 мар 2009
    Сообщения:
    185
    Симпатии:
    37
    Как вариант ещё можно access_log парсить для подсчёта обращений. Плюсы такой реализации - не надо обращаться к php. Всё можно сделать на уровне sh.
     
  9. a_n_d_y

    a_n_d_y

    Регистр.:
    26 мар 2006
    Сообщения:
    465
    Симпатии:
    61
    На нормальном сервере нет и не должно быть доступа к логам от обычного пользователя.
     
  10. BACZ

    BACZ

    Регистр.:
    18 июн 2008
    Сообщения:
    608
    Симпатии:
    381
    на примерно половине встречающихся конфигураций логи апача лежат в папке /logs или /log ниже корня (public_html, www, htdocs), имеют права этого пользователя или ссылаются на /чёнибудь/apache/domlogs/дальше логи. И имеются права на чтение этих логов у пользователя. Хотя парсить логи дело достаточно затратное.