Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Помогите с простейшим счетчиком

Сообщения:  [1-3] 

 
 автор: TetRiska   (09.11.2013 в 01:44)   письмо автору
 
   для: patisosha   (07.11.2013 в 20:49)
 

база и только база, пора уходить от геморописания в файлы

  Ответить  
 
 автор: Sfinks   (08.11.2013 в 07:49)   письмо автору
 
   для: patisosha   (07.11.2013 в 20:49)
 

Для этого статистику нужно хранить не в файле, а в БД.
Во-первых - вы решите поставленную задачу средствами СУБД.... Она сама все посчитает и отсортирует в нужном порядке.
Во-вторых - не придется заботиться о совместном доступе к данным. Вы и сейчас не заботитесь, но представьте что будет, если одновременно несколько запросов откроют один и тот же файл и будут в него писать? Он просто затрется. И результат в нем будет совсем не предсказуемый.

  Ответить  
 
 автор: patisosha   (07.11.2013 в 20:49)   письмо автору
 
 

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

есть вот такой 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 ($filefilesize("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($file0);
      
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

всем спасибо

  Ответить  

Сообщения:  [1-3] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования