1. Начата процедура восстановления социальных групп. Лидерам старых и новых групп обязательно ознакомиться с регламентом проведения работ.

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

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

  1. Не знаю как правильней и сказать. Попробую так: есть php файл, который генерирует картинку. Как подсчитать сколько раз за сутки к этому файлу обращаются для создания картинки. Когда-то вставлял счетчик от cnstats ( *facepalm* ), но это вообще туповато, да и файлов много сильно.
  2. А что мешает в сам php файл вписать скриптик учёта статистики?
  3. Zlobniy Babko aka Spaxy KOKC

    Moderator
    Типа такого...

    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. незнание мешает(…

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

    А где хорошо написано про работу с тхт файлами? Интересуют функции открыть, прочитать, стереть, ну и им подобные
  5. И ещё важное. На сайте, допусти, 30 папок и в каждой лежит php файл, к которому считаются обращения. Код для подсчета вставляю в начало каждого. Можно сделать так, чтобы со всех php файлов данные писались не в отдельные, а в один txt?
    ===================
    С этим разобрался, поменял $url = "count.txt"; на $url = "../count.txt";
  6. Zlobniy Babko aka Spaxy KOKC

    Moderator
    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. Всё работает, спасибо
  8. Как вариант ещё можно access_log парсить для подсчёта обращений. Плюсы такой реализации - не надо обращаться к php. Всё можно сделать на уровне sh.
  9. На нормальном сервере нет и не должно быть доступа к логам от обычного пользователя.
  10. на примерно половине встречающихся конфигураций логи апача лежат в папке /logs или /log ниже корня (public_html, www, htdocs), имеют права этого пользователя или ссылаются на /чёнибудь/apache/domlogs/дальше логи. И имеются права на чтение этих логов у пользователя. Хотя парсить логи дело достаточно затратное.