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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Статистика! Перезапись txt файла каждый день или когда больше 200 строчек то перезаписывается!
 
 автор: Panker   (26.01.2006 в 08:00)   письмо автору
 
 

Корчое вот, я тут наисал свой собтвенный скрипт по оброзу прошлого не моегО!
Корчое написал всё на памят и так далее ) ладно это не суть!
Короче порадовался и решил опробывать!
вот скрипт

<?php $stats "IP-адрес Юзера - ".$_SERVER['SERVER_ADDR']." <br>
Порт сервера - "
.$_SERVER['SERVER_PORT']." <br>
Браузер посетителя - "
.$_SERVER['HTTP_USER_AGENT']." <br>
Юзер пришел с "
.$_SERVER['HTTP_REFERER']."        *Если тут адрес вашего сайта значит он набрал адрес на прямую*<br>
Число месяц год - "
.date("d-m-y")."<br>
Час минута секунда - "
.date("H-i-s")."<br>
--------------------------------------------------    <br><br>                         "
?>
<?php
$filename 
"content/log.txt";
$fp fopen$filename"a" );
fwrite$fp"$stats);
?>

Корчое тут всё понятнО!
Он сам создаёт log.txt
Но в чём проблема!
Статистика на сайте показывается вот так
IP-адрес Юзера - 127.0.0.1 Порт сервера - 80 Браузер посетителя - Opera/9.0 (Windows NT 5.1; U; en) Юзер пришел с http://test2.ru/ *Если тут адрес вашего сайта значит он набрал адрес на прямую*Число месяц год - 26-01-06Час минута секунда - 07-02-42--------------------------------------------------
Ну разве это удобно?? если придёт 200 человек то всё рухнит! файл станет огромный! и так далее!
Я вот что придумал! Думаю поставить кнопку очистить! и типа удалять файл! но нет! Малоли статистика нужна будет! И придумал вот что! Но как сделать не знаю!
Корчое!
Допустим вариант 1!
Как сделать чтоб допустим каждые 24 часа файл log.txt перезаписывлся в тоже txt файл но чтоб назывался он датой! ну типа можно было найти файл статистики!
Вариант 2
Типа когда в текстовом домкументе становится больше Х строк ( которые задаёт пользователь, админ сайт) файл так же копировался и переименовавался в сегоднеюшее число!
Вариан 3
Когда файл становится более 2х 3х килобайт он так же архивируется! килобайты тоже задаю я ))
Помогите осуществить любой вариант! я не прошу подсказать! )))) хотя можно )) но лудше пример ))) Зарание спасибо!
ТЕКСТ ЧЕРЕЗ ВОРД НЕ ПРОШЕЛ! СОРРИ

   
 
 автор: Panker   (26.01.2006 в 08:29)   письмо автору
 
   для: Panker   (26.01.2006 в 08:00)
 

Я вот посидел немного тут! подумал! впринципи нечего дельного не надумал

<?
if ( getenv ( ($_FILES["filename"]["size"])  < '0'
unlink("1.txt");
?>

Корчое я магу поставить конечно же просто Кнопку ОЧИСТИТЬ при заходе будет файл удалятся! но это не выход! надо чтоб история сохронялась! ))

   
 
 автор: cheops   (26.01.2006 в 15:05)   письмо автору
 
   для: Panker   (26.01.2006 в 08:00)
 

А какова структура log.txt, предложение
IP-адрес Юзера - 127.0.0.1 Порт сервера - 80 Браузер посетителя - Opera/9.0 (Windows NT 5.1; U; en) Юзер пришел с http://test2.ru/ *Если тут адрес вашего сайта значит он набрал адрес на прямую*Число месяц год - 26-01-06Час минута секунда - 07-02-42--------------------------------------------------

расположено на одной строке или нет?

PS Вообще для решения такой задачи больше подходит база данных, иначе придётся очень много писать обслуживающего кода.

   
 
 автор: Panker   (26.01.2006 в 16:32)   письмо автору
 
   для: cheops   (26.01.2006 в 15:05)
 


IP-адрес Юзера - 127.0.0.1 <br>
Порт сервера - 80 <br>
Браузер посетителя - Opera/9.0 (Windows NT 5.1; U; en) <br>
Юзер пришел с http://test2.ru/        *Если тут адрес вашего сайта значит он набрал адрес на прямую*<br>
Число месяц год - 26-01-06<br>
Час минута секунда - 07-02-42<br>
--------------------------------------------------    <br><br>                         IP-адрес Юзера - 127.0.0.1 <br>
Порт сервера - 80 <br>
Браузер посетителя - Opera/9.0 (Windows NT 5.1; U; en) <br>
Юзер пришел с http://test2.ru/        *Если тут адрес вашего сайта значит он набрал адрес на прямую*<br>
Число месяц год - 26-01-06<br>
Час минута секунда - 07-02-48<br>
--------------------------------------------------    <br><br>                         IP-адрес 

Вот как распалажон( расположена) статистика в log.txt
Я бы и с мускулом сделал! Но у меня почти всё готово и я всё время от него отказвался а теперь будет плохо!Ну корчое просто делал всё без мускула а тут ради какогото счтёчика отказыватся от этого =)
Я просто не знаю как сделать чтоб в txt записывалась всё по 1 строчке!
Типа 1 параметр 1 строка и между посетителями 1 строка пропуск!
Пожалуйсто подскажите! А то всё почти гатова а статистика храмает!


Вот у меян скрипт типа этого получится
http://serezniy.com/?page=scms

Так что мускул тут не уместен =((((

   
 
 автор: Panker   (26.01.2006 в 17:26)   письмо автору
 
   для: Panker   (26.01.2006 в 16:32)
 

Я сделлал чтоб в html всё былО! покрасивей вроде!
Впринципи я придумал! Если нельзя сделать чтоб каждый день сохронлся в новый файл,
То вот что я сделал да,

<?php $stats "<font size=2>
<font color=0000FF>IP-адрес Юзера - <font color=FF0000>"
.$_SERVER['SERVER_ADDR']." <br>
<font color=0000FF>Порт сервера - <font color=FF0000>"
.$_SERVER['SERVER_PORT']." <br>
<font color=0000FF>Браузер посетителя - <font color=FF0000>"
.$_SERVER['HTTP_USER_AGENT']." <br>
<font color=0000FF>Юзер пришел с <font color=FF0000>"
.$_SERVER['HTTP_REFERER']."        <br>
<font color=0000FF>Число месяц год - <font color=FF0000>"
.date("d-m-y")."<br>
<font color=0000FF>Час минута секунда - <font color=FF0000>"
.date("H-i-s")."<br>
<br><br>                         "
?>
<?php
$filename 
"content/log.html";
$fp fopen$filename"a" );
fwrite$fp"$stats);
$filename2 "content/log_all.html";
$fp fopen$filename2"a" );
fwrite$fp"$stats);
?>

Типа создаётся 2 файла! вот один файл будет показывать ВСЮ статистику пусть там хоть 10 метров будет )))
А первый я хачу сделать чтоб показывал последнии 10 посетителей!
Как мне это сделать!??
Ну допустим чтоб когда заходил 11 он записывался в конец вытесняя первого ну или как сделать чтоб если в файле 100 строчек то если приплюсовавается ещё 10 строчек то первые 10 стераются!
Ну или как нить! плизз помогите!
А то без сттатистики останусь! ((

   
 
 автор: Panker   (26.01.2006 в 23:58)   письмо автору
 
   для: Panker   (26.01.2006 в 17:26)
 

Да, да! Я ещё тут!
Поднял тему!

   
 
 автор: cheops   (27.01.2006 в 13:50)   письмо автору
 
   для: Panker   (26.01.2006 в 17:26)
 

Можно попытаться, сделать это следующим образом
<?php
  
// Получаем содержимое файла в виде одной строки
  
$content file_get_contents("log.txt");
  
// Разбиваем содержимое файла на массив - каждый элемент
  // которого относится к одному пользователю
  
$arr explode("--------------------------------------------------",$content)
  for(
$i count($arr) - 10$i count($arr); $i++)
  {
     echo 
$arr[$i]
  }
?>


PS Это будет работать (на реальном сервере) примерно тех пор пока размер файла не привысит 4 Мб - потом скорее всего навернётся. Зря вы форматирование в файле храните - скрипту красивый формат не нужен, а отформатировать информацию вы всегда успеете и при выводе. Все <br> и длинные последовательности --- занимают место и приближают вас к критическому объёму файла.

   
 
 автор: 007   (28.01.2006 в 04:06)   письмо автору
 
   для: cheops   (27.01.2006 в 13:50)
 

Подскажите у меня подобная проблема !

Есть скрипт
----------
<?php
$filename="log.txt" ;
$info=$_GET['info'] ;
$user=$_GET['user'] ;
$ip=getenv("REMOTE_ADDR");
$real_ip=getenv("HTTP_X_FORWARDED_FOR");
$fh=fopen($filename,"a+");
if($real_ip!=""):
fputs($fh,"$info\n$user\n[IP_REAL:$real_ip IP:$ip]\n\n");
else:
fputs($fh,"$info\n$user\n[IP:$ip]\n\n");
endif;
fclose($fh);
$fssz=filesize($filename);
if($fssz>$razmer):
$fh=fopen($filename,"r+");
$message=fread($fh,$fssz);
fclose($fh);
endif;
exit;
?>


В тхт файл записываются данные
пример:

----
7061676561637469
[35336184702772269645[tmv]
[IP:67.86.17.163]

3C6162206B3D2274686564
[9355239761871047952[ZR3]
[IP:219.94.41.106]
----

Нужно както зделать чтобы:
создался отдельный файл с id: [9355239761871047952[ZR3] и только туда все эти данные записывались в этот файл которые приходят от этого юзера
тоесть сколькр id столько и файлов с данными
(только мускол непредлагайте плз)

   
 
 автор: cheops   (28.01.2006 в 12:21)   письмо автору
 
   для: 007   (28.01.2006 в 04:06)
 

Под новый вопрос лучше заводить новую тему.

   
 
 автор: Бамси   (28.01.2006 в 06:04)   письмо автору
 
   для: Panker   (26.01.2006 в 17:26)
 

Я просто не знаю как сделать чтоб в txt записывалась всё по 1 строчке!
Надо писать не <br> это же txt формат.
А надо писать /n или \n . Что то из этих двоих, работает как энтер :)

   
 
 автор: ZetRider   (28.01.2006 в 10:22)   письмо автору
 
   для: Бамси   (28.01.2006 в 06:04)
 

нужно писать \r\n

   
Rambler's Top100
вверх

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