Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.11.2013, 21:21   #1
patisosha
 
Регистрация: 07.11.2013
Сообщений: 5
По умолчанию Помогите с простейшим счетчиком

Ребята ....помогите плиз с счетчиком переходов по ссылкам

есть вот такой PHP файл ... назову его stat.php ... ниже код ... правда мне кажется тоже немного корявый но работает Недовольство, огорчение
и есть пустой файл statistika.txt .. права на него 777

<?
$QUERY_STRING=$_SERVER['QUERY_STRING'];
if(isset($QUERY_STRING)){
$url=$QUERY_STRING;
$file=fopen("statistika.txt","r+");
$text = fread ($file, filesize("statistika.txt"));
if (strpos($text, $url) !== false){
preg_match ("#".quotemeta($url)." просмотров ([0-9]+) \\n#i", $text, $matches);
$matches[1] = $matches[1]+1;
$text = preg_replace("#(".quotemeta($url)." просмотров) ([0-9]+) (\\n)#i", "$1 $matches[1] $3", $text);
ftruncate($file, 0);
rewind($file);
fputs ($file, $text);
} else {
fputs ($file, $url." просмотров 1 \n");
}
fclose($file);
}else{
exit("<div align='center' style='font-family:verdana;font-size:12pt;color:red;'>Здесь нет ничего интересного!</div><br>");
}
?>
<html>
<head>
<META http-equiv="Refresh" content="0; url=<?print $url;?>">
</head>
</html>

теперь если я ставлю несколько ссылок на чужом сайте в виде
http://мой_домен/stat.php?страничка1
http://мой_домен/stat.php?страничка2
http://мой_домен/stat.php?страничка3

при переходе по этим ссылкам в файле statistika.txt появляются записи в таком виде
страничка1 2
страничка2 4
страничка3 1

где цифры на против ссылок указывают количество переходов по тем ссылкам

ТЕПЕРЬ САМА ПРОБЛЕМА
что добавить в код чтоб в начале этого списка была и цифра с общим количеством переходов по этим ссылкам... а то если таких ссылок 1000 то как-то не хочется каждый день считать на калькуляторе
чтоб выглядело скажем так
ВСЕГО 7
страничка1 2
страничка2 4
страничка3 1

всем спасибо
patisosha вне форума Ответить с цитированием
Старый 07.11.2013, 21:40   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от patisosha Посмотреть сообщение
а то если таких ссылок 1000 то как-то не хочется каждый день считать на калькуляторе
Лучше уже прям сейчас перестать страдать этими глупостями с ведением статистики в обычных txt-файлах – и начать использовать для этих целей любую доступную БД.
XXI-й век же, алё...
Andkorol вне форума Ответить с цитированием
Старый 07.11.2013, 21:42   #3
patisosha
 
Регистрация: 07.11.2013
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Лучше уже прям сейчас перестать страдать этими глупостями с ведением статистики в обычных txt-файлах – и начать использовать для этих целей любую доступную БД.
XXI-й век же, алё...
спасибо за ценный совет ... я это учту, но все же свою проблему не решила
patisosha вне форума Ответить с цитированием
Старый 07.11.2013, 21:50   #4
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

Цикл по строкам с суммированием значений
ADSoft вне форума Ответить с цитированием
Старый 07.11.2013, 21:54   #5
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Решение вашей проблемы не имеет смысла – т.к. даже при незначительной посещаемости есть вполне реальная возможность некорректного подсчета при одновременной перезаписи информации в файле.
Это сводит на нет сам смысл подобной статистики – информация не будет достоверной и точной.
Использование БД подобные коллизии полностью исключает.
Andkorol вне форума Ответить с цитированием
Старый 07.11.2013, 22:12   #6
patisosha
 
Регистрация: 07.11.2013
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Решение вашей проблемы не имеет смысла – т.к. даже при незначительной посещаемости есть вполне реальная возможность некорректного подсчета при одновременной перезаписи информации в файле.
Это сводит на нет сам смысл подобной статистики – информация не будет достоверной и точной.
Использование БД подобные коллизии полностью исключает.
попробую описать проблему .... есть некий сайт на котором размещены ссылки на мой сайт .... и ссылки эти ведут на разные страницы .... мне нужен счетчик который будет считать переходы только с того сайта ... важно общее число этих переходов ... и статистика страниц куда переходили

ну вот как-то так
patisosha вне форума Ответить с цитированием
Старый 07.11.2013, 22:29   #7
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от patisosha Посмотреть сообщение
попробую описать проблему .... есть некий сайт на котором размещены ссылки на мой сайт .... и ссылки эти ведут на разные страницы .... мне нужен счетчик который будет считать переходы только с того сайта ... важно общее число этих переходов ... и статистика страниц куда переходили
Ну так в чем проблема-то?
Если уж вам очень хочется использовать txt-файлы – ADSoft вам решение уже подсказал.
Вы же где-то эту статистику из файла выводите? В Админке там, или ещё где?
Вот в процессе вывода суммируйте эти значения – и в конце списка статистики выводите:
ВСЕГО: 123 перехода.
Совсем ведь не обязательно записывать эту сумму в файл.

PS: а вообще – чего только люди не придумают, чтоб не использовать Google Analytics...
Andkorol вне форума Ответить с цитированием
Старый 07.11.2013, 22:40   #8
patisosha
 
Регистрация: 07.11.2013
Сообщений: 5
По умолчанию

теперь еще больше запуталась и не понимаю что делать
patisosha вне форума Ответить с цитированием
Старый 07.11.2013, 23:02   #9
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Просмотр статистики:
PHP код:
$data file('statistika.txt');
if(!empty(
$data)){
    
$sum 0;
    foreach(
$data as $line){
        echo 
$line '<br/>';
        
$ex_line explode(' '$line);
        
$sum += $ex_line[1];
    }
    echo 
'ВСЕГО переходов: ' $sum;

Выводит:
страничка1 2
страничка2 4
страничка3 1
ВСЕГО переходов: 7
Andkorol вне форума Ответить с цитированием
Старый 08.11.2013, 11:11   #10
patisosha
 
Регистрация: 07.11.2013
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Просмотр статистики:
PHP код:
$data file('statistika.txt');
if(!empty(
$data)){
    
$sum 0;
    foreach(
$data as $line){
        echo 
$line '<br/>';
        
$ex_line explode(' '$line);
        
$sum += $ex_line[1];
    }
    echo 
'ВСЕГО переходов: ' $sum;

Выводит:
страничка1 2
страничка2 4
страничка3 1
ВСЕГО переходов: 7

к сожалению все равно не работает .... или может я не так записала ... я этот код добавила под тем скриптом что был и раньше ....

записала вот так

<?
$QUERY_STRING=$_SERVER['QUERY_STRING'];
if(isset($QUERY_STRING)){
$url=$QUERY_STRING;
$file=fopen("redir.txt","r+");
$text = fread ($file, filesize("redir.txt"));
if (strpos($text, $url) !== false){
preg_match ("#".quotemeta($url)." просмотров ([0-9]+) \\n#i", $text, $matches);
$matches[1] = $matches[1]+1;
$text = preg_replace("#(".quotemeta($url)." просмотров) ([0-9]+) (\\n)#i", "$1 $matches[1] $3", $text);
ftruncate($file, 0);
rewind($file);
fputs ($file, $text);
} else {
fputs ($file, $url." просмотров 1 \n");
}
fclose($file);
}else{
exit("<div align='center' style='font-family:verdana;font-size:12pt;color:red;'>Здесь нет ничего интересного!</div><br>");
}
$data = file('redir.txt');
if(!empty($data)){
$sum = 0;
foreach($data as $line){
echo $line . '<br/>';
$ex_line = explode(' ', $line);
$sum += $ex_line[1];
}
echo 'ВСЕГО переходов: ' . $sum;
}
?>
<html>
<head>
<META http-equiv="Refresh" content="0; url=<?print $url;?>">
</head>
</html>


в файле TXT все равно нет строки ВСЕГО .... может я не так код написала ...я просто в ПХП совсем мало разбираюсь ...... и раньше с старым кодом переход по ссылке был сразу ...а сейчас сначала загружается ПХП файл ...и затем с задержкой происходит перенаправление на нужную страницу
patisosha вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с счетчиком просмотра страницы... zis Помощь студентам 0 01.10.2013 22:35
Циклы со счетчиком натал Паскаль, Turbo Pascal, PascalABC.NET 1 29.01.2013 00:57
Проблема с счетчиком( vityanya Общие вопросы C/C++ 14 16.12.2010 02:41
Циклы с счетчиком, помогите! Elena90 Microsoft Office Excel 2 13.12.2009 20:48
Проблема с простейшим условием Kawun Помощь студентам 7 13.03.2009 18:23