|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
07.11.2013, 21:21 | #1 |
Регистрация: 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 всем спасибо |
07.11.2013, 21:40 | #2 |
Старожил
Регистрация: 31.05.2010
Сообщений: 3,301
|
|
07.11.2013, 21:42 | #3 |
Регистрация: 07.11.2013
Сообщений: 5
|
|
07.11.2013, 21:50 | #4 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,160
|
Цикл по строкам с суммированием значений
|
07.11.2013, 21:54 | #5 |
Старожил
Регистрация: 31.05.2010
Сообщений: 3,301
|
Решение вашей проблемы не имеет смысла – т.к. даже при незначительной посещаемости есть вполне реальная возможность некорректного подсчета при одновременной перезаписи информации в файле.
Это сводит на нет сам смысл подобной статистики – информация не будет достоверной и точной. Использование БД подобные коллизии полностью исключает. |
07.11.2013, 22:12 | #6 | |
Регистрация: 07.11.2013
Сообщений: 5
|
Цитата:
ну вот как-то так |
|
07.11.2013, 22:29 | #7 | |
Старожил
Регистрация: 31.05.2010
Сообщений: 3,301
|
Цитата:
Если уж вам очень хочется использовать txt-файлы – ADSoft вам решение уже подсказал. Вы же где-то эту статистику из файла выводите? В Админке там, или ещё где? Вот в процессе вывода суммируйте эти значения – и в конце списка статистики выводите: ВСЕГО: 123 перехода. Совсем ведь не обязательно записывать эту сумму в файл. PS: а вообще – чего только люди не придумают, чтоб не использовать Google Analytics... |
|
07.11.2013, 22:40 | #8 |
Регистрация: 07.11.2013
Сообщений: 5
|
теперь еще больше запуталась и не понимаю что делать
|
07.11.2013, 23:02 | #9 |
Старожил
Регистрация: 31.05.2010
Сообщений: 3,301
|
Просмотр статистики:
PHP код:
страничка1 2 страничка2 4 страничка3 1 ВСЕГО переходов: 7 |
08.11.2013, 11:11 | #10 | |
Регистрация: 07.11.2013
Сообщений: 5
|
Цитата:
к сожалению все равно не работает .... или может я не так записала ... я этот код добавила под тем скриптом что был и раньше .... записала вот так <? $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 все равно нет строки ВСЕГО .... может я не так код написала ...я просто в ПХП совсем мало разбираюсь ...... и раньше с старым кодом переход по ссылке был сразу ...а сейчас сначала загружается ПХП файл ...и затем с задержкой происходит перенаправление на нужную страницу |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите с счетчиком просмотра страницы... | 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 |