Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Kopiowanie zawartosci pliku
Gligamesh
post
Post #1





Grupa: Zarejestrowani
Postów: 227
Pomógł: 0
Dołączył: 13.06.2003
Skąd: rykowice

Ostrzeżenie: (0%)
-----


witam mam licznik dzienny ktory zapisauje w pliku ilosc odwiedzin. chcail bym zeby np o godzinie 23:59 zawartosc pliku byla dodawana do pliku wraz z data.

Struktura pliku:
ilosc odwiedzin|data/n

chail bym porstu z tego zrobic jaks statystyke.

nie mam zielonego pojecai jak sie do tego zabrac, i niezbyt sie znam wiec prosze o jakies przyklady, podpowiedzi cokoliwke
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
Dabroz
post
Post #2





Grupa: Zarejestrowani
Postów: 286
Pomógł: 0
Dołączył: 1.11.2003
Skąd: Poland, Płock

Ostrzeżenie: (0%)
-----


Jeżeli chcesz uruchamiać ten sktypy o 23:59 to musisz użyć crone'a albo czegoś podobnego.


--------------------
Go to the top of the page
+Quote Post
Gligamesh
post
Post #3





Grupa: Zarejestrowani
Postów: 227
Pomógł: 0
Dołączył: 13.06.2003
Skąd: rykowice

Ostrzeżenie: (0%)
-----


ze sie zapytam czego questionmark.gif najpierw bylo by trzeba miec ten skrypt
Go to the top of the page
+Quote Post
Chewolf
post
Post #4





Grupa: Zarejestrowani
Postów: 335
Pomógł: 0
Dołączył: 15.11.2003

Ostrzeżenie: (0%)
-----


Powinno dzialac :
  1. <?php
  2. $Plik = 'nazwa pliku z licznikiem';
  3. $PlikuS = 'nazwa pliku do statystyk';
  4. $File = join(file(&#092;"$Plik\"));
  5. $ass = fopen($PlikuS,&#092;"a\");
  6. $zawartosc = $File.'|'.date(&#092;"Y-m-j G:i:s\").\"n\";
  7. fputs($ass,$zawartosc);
  8. fclose($ass);
  9. ?>

1. Skrypt zadziala jesli w pliku pod zmienna $Plik bedzie liczna odslon czyli sama liczba...
2. Jesli serwer stoi na Linuxie , pamietaj o chmodach.

Ten post edytował m5910 9.07.2004, 19:44:19
Go to the top of the page
+Quote Post
marlowe
post
Post #5





Grupa: Zarejestrowani
Postów: 178
Pomógł: 0
Dołączył: 2.11.2003
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Wykombinowałem skrypt, który chyba w pełni wykonuje to, co chcesz osiągnąć jednak działa trochę inaczej- odczytuja ostatnią linię z pliku count.txt i sprawdza czy zawiera ona dziejszą datę (data zapisana jest jako rok i numer dnia w roku)- jeśli tak to kasuje tą ostatnią linię i zapisuje taką samą, tyle, że ze zwiększonym licznikiem, jeśli ostatnia linia zawiera inną datę- dopisuje nową linią z dzisiejszą datą i licznikiem ustawionym na "1":
counter.php
  1. <?php
  2. $counter_file = &#092;"count.txt\";
  3.  
  4. /* Skrypt ma wykonac następjące czynności:
  5. - ustalić dzisiejszą datę
  6. - wczytać ostatnią linię w pliku
  7. - pobrać wartość licznika w tej linii
  8. - sprawdzić czy ostatnia linia zawiera dzisiejszą datę
  9. - otworzyć plik
  10. - jeśli tak- kasuje ostatnią linię i zastępuje ją nową linią z powiększoną wartością licznik
  11.  
  12. - jeżeli nie- dopisuje nową linię z dzisiejszą datą i licznikiem ustawionym na \"1\" */
  13.  
  14. $today_date = gmdate(&#092;"Yz\");
  15.  
  16. $file_cont = file($counter_file);
  17. $file_last_line = $file_cont[count($file_cont)-1];
  18. $file_last_line_lenght = strlen($file_last_line);
  19.  
  20. $file_last_line = explode(&#092;"t\",$file_last_line);
  21. $file_counter = (int) $file_last_line[1];
  22.  
  23. if(!($fp = fopen($counter_file, &#092;"a+\")))
  24. die (&#092;"Nie mogę otworzyć $counter_file.\");
  25.  
  26. if($file_last_line[0] == $today_date)
  27. {
  28. ftruncate($fp,filesize($counter_file)-$file_last_line_lenght);
  29. echo &#092;"Jesteś \".$file_counter++.\" osobą na stronie. Wartość licznika dla dzisiejszego dnia została zwiększon
    a\";
  30. fwrite($fp, $today_date . &#092;"t\" . $file_counter . \"rn\");
  31. }
  32. else
  33. {
  34. $file_counter = 1;
  35. echo &#092;"Jesteś pierwszą osobą dziś. Zapisałem nową linię w pliku z dzisiejszą datą.
    \";
  36. fwrite($fp, $today_date . &#092;"t\" . $file_counter . \"rn\");
  37. }
  38.  
  39. fclose($fp);
  40. ?>

Zeby zobaczyć sobie czy działa możesz utworzyć plik count.txt o np. następującej treści:
count.txt
Kod
2004189    5
2004190    1
2004191    13

A taki skrypt odczyta wartości z licznika i wyświetli na stronie:
show_counter.php
  1. <style>
  2. td {border: 1px solid; border-color: #000; width: 100px;}
  3. </style>
  4. <table>
  5. <tr><td>Dzień</td><td>Ilość odwiedzin</td></tr>
  6. <?php
  7. $counter_file = &#092;"count.txt\";
  8. //skrypt wyświetla w formie tabelki liczbę odwiedzin w poszczególnych dniach
  9.  
  10. $file_cont = file($counter_file);
  11. foreach($file_cont as $day_count)
  12. {
  13. $date_and_counter = explode(&#092;"t\", $day_count);
  14. echo &#092;"<tr><td>$date_and_counter[0]</td><td>$date_and_counter[1]</td></tr>\";
  15. }
  16. ?>
  17. </table>

Tu są przykłady- skryptu licznika i skryptu odczytującego ilości odwiedzin.
Mam nadzieję,że o to Ci chodziło.
Pozdrawiam.
Bartek

Ten post edytował marlowe 10.07.2004, 13:52:49
Go to the top of the page
+Quote Post
Gligamesh
post
Post #6





Grupa: Zarejestrowani
Postów: 227
Pomógł: 0
Dołączył: 13.06.2003
Skąd: rykowice

Ostrzeżenie: (0%)
-----


ok, skorzystalem z pierwszego skryptu gdyz jest prosty jak dla mnie winksmiley.jpg i dzial po modyfikacjach, ale jak mam zrobic by on sie odpalal o 23:59 questionmark.gif tak by przekopiowac dane z max iloscia odwiedzin

drugi skrypt jest fajny tylko ze chcail bym unikalne odslpony czyli po ip, i chcail bym aby jeszce byl ogolny licznik ze wszystkimi odwiedzinami, najlepiej w osobnym pliku by nie obciazac systemu, gdyby bylo monza naniesc takie poprawki byl bym naprawde bardzo wdzieczny

Ten post edytował Gligamesh 10.07.2004, 22:03:08
Go to the top of the page
+Quote Post
marlowe
post
Post #7





Grupa: Zarejestrowani
Postów: 178
Pomógł: 0
Dołączył: 2.11.2003
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Hm. Chciałbym móc napisać proste rozwiązanie ale chyba jednak trzeba pokombinować żeby osiągnąć takie efeklty operując na plikach tekstowych- znacznie by to było wszystko przyjemniejsze na bazie danych... No więc tak:
counter_ip.php

  1. <?php
  2. $counter_file = &#092;"count_ip.txt\";
  3. //skrypt zapisuje w kolejnych liniach pliku licznika numer ip oraz datę odwiedzin
  4.  
  5. $today_date = gmdate(&#092;"Yz\");
  6. $hostname = gethostbyname($_SERVER['REMOTE_ADDR']);
  7.  
  8. if(!($fp = fopen($counter_file, &#092;"a+\")))
  9. die (&#092;"Nie mogę otworzyć $counter_file.\");
  10.  
  11. fwrite($fp, $hostname . &#092;"t\" . $today_date . \"rn\");
  12.  
  13. fclose($fp);
  14. ?>

show_counter_ip
  1. <style>
  2. td {border: 1px solid; border-color: #000; width: 100px;}
  3. </style>
  4.  
  5. <?php
  6. $counter_file = &#092;"count1.txt\";
  7. //skrypt odczytuje z pliku dane na temat odwiedzin w poszczególnych dniach i wypis
  8. je numery ip
  9.  
  10. $file_cont = file($counter_file);
  11. $tabel = array();
  12. foreach($file_cont as $line)
  13. {
  14. $line = explode(&#092;"t\",$line);
  15. $file_ip = $line[0];
  16. $file_date = $line[1];
  17.  
  18. $tabel[$file_ip] = $tabel[$file_ip].&#092;",\".$file_date;
  19. }
  20. echo &#092;"<table>\";
  21. foreach($tabel as $date=>$ip_s)
  22. {
  23. $howmany_ip_s = count(explode(&#092;",\",$ip_s))-1;
  24. echo &#092;"<tr><td>$date</td><td>$ip_s</td><td>$howmany_ip_s-1</tr>\";
  25. }
  26. echo &#092;"</table>\";
  27. ?>

Tu są przykłady: licznik z zapisywaniem ip oraz skrypt wyświetlający zapisane dane.
No a zwykły licznik zewnętrzny to wystarczy dodać gdzieś:
  1. <?php
  2. $counter_file = &#092;"./norm_counter.dat\";
  3. if(!($fp = fopen($counter_file, &#092;"r\")))
  4. die (&#092;"Nie mogę otworzyć $counter_file.\");
  5. $counter = (int) fread($fp, 20);
  6. fclose($fp);
  7.  
  8. $counter++;
  9. echo &#092;"Jesteś gościem nr: $counter.\";
  10.  
  11. if(!($fp = fopen($counter_file, &#092;"w\")))
  12. die(&#092;"Nie mogę otworzyć $counter_file.\");
  13. fwrite($fp, $counter);
  14. fclose($fp);
  15. ?>

Pozdrawiam.
Bartek

Ten post edytował marlowe 11.07.2004, 01:17:53
Go to the top of the page
+Quote Post
Gligamesh
post
Post #8





Grupa: Zarejestrowani
Postów: 227
Pomógł: 0
Dołączył: 13.06.2003
Skąd: rykowice

Ostrzeżenie: (0%)
-----


eh hycba sobie odpuszcze sad.gif nie dzial to tak jak bym chcial, a narazie nie mam dostepu do mysqla na serverku az tak plynnie sad.gif pasował by mi ten pierwszy ale jak go odpalac o danej poze ?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 03:45