Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zapis do pliku kilku zmiennych.
renault12
post 9.01.2010, 16:58:37
Post #1





Grupa: Zarejestrowani
Postów: 147
Pomógł: 0
Dołączył: 9.01.2010

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


Witam!

Otóż mam pewien problem z zapisem do pliku tekstowego opierający się na coś w stylu licznika.
Mam następujący kod:
  1. <?php
  2. $fp=fopen("daneuzyt.txt", "a"); //otworzenie pliku informacji
  3. $plik=file("licznik.txt");
  4. $liczba=$plik[0];
  5. $działanie= $liczba+1;
  6. $licznik=fopen("licznik.txt", "w+"); //otwarcie pliku licznika
  7. $ip=$_SERVER['REMOTE_ADDR']; //zmienna ip to zdalny IP
  8. $data=date ("G:i:s d-m-y"); //zmienna data to data i godzina
  9. flock($fp, 3);
  10. fwrite($licznik, "input= " .$działanie);
  11. flock($fp, 2);
  12. fwrite($fp, "\n$data $ip"); //zapisanie daty, IP, hosta, przeglądarki
  13. flock($fp, 3);
  14. fclose($fp); //zamknięcie pliku
  15. include ('index.html');
  16. ?>


Moją prośbą jest wskazanie mi co mam zrobić by zapis był poprawny do pliku, otóż przy odswiezeniu strony w pliku txt pojawia sie tylko "input= 1" a liczba powinna rosnąć w wzwyż. Początek kodu "input=" musi tam występować ponieważ jest on mi potrzebny jako zmienna do flasha.

Reasumując dokładnie chodzi mi o to aby w pliku licznik.txt zapisywalo sie "input=" a liczba za "=" rosła przy każdym odwiedzeniu strony.

Proszę o pomoc, dzieki.

Ten post edytował renault12 9.01.2010, 17:34:35
Go to the top of the page
+Quote Post
emtiej
post 9.01.2010, 17:28:26
Post #2





Grupa: Zarejestrowani
Postów: 207
Pomógł: 18
Dołączył: 12.04.2009
Skąd: Rypin

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


Cytat
$działanie


W PHP nie używamy polskich liter!!!! BOŻE brońexclamation.gif! Popraw to i pewnie zadziała
Go to the top of the page
+Quote Post
renault12
post 9.01.2010, 17:33:31
Post #3





Grupa: Zarejestrowani
Postów: 147
Pomógł: 0
Dołączył: 9.01.2010

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


hmm poprawiłem a mimo to liczba dalej stoi w miejscu.
Go to the top of the page
+Quote Post
Volume
post 9.01.2010, 17:50:19
Post #4





Grupa: Zarejestrowani
Postów: 283
Pomógł: 11
Dołączył: 11.10.2004
Skąd: 3c

Ostrzeżenie: (10%)
X----


zrob odczyt lini z pliku daneuzyt.txt przez zczytywanie z tablicy (count), do tego musisz zastosowac zczytanie tego pliku przez funkcje file(): $plik2=file("daneuzyt.txt"); a potem odczyt: $liczba=count($plik2);
  1.  
  2. <?php
  3. $fp=fopen("daneuzyt.txt", "a"); //otworzenie pliku informacji
  4. $plik=file("licznik.txt");
  5. $plik2=file("daneuzyt.txt");
  6. $liczba=count($plik2);
  7. $dzialanie= $liczba+1;
  8. $licznik=fopen("licznik.txt", "w+"); //otwarcie pliku licznika
  9. $ip=$_SERVER['REMOTE_ADDR']; //zmienna ip to zdalny IP
  10. $data=date ("G:i:s d-m-y"); //zmienna data to data i godzina
  11. flock($fp, 3);
  12. fwrite($licznik, "input= " .$dzialanie);
  13. flock($fp, 2);
  14. fwrite($fp, "\n$data $ip"); //zapisanie daty, IP, hosta, przegldarki
  15. flock($fp, 3);
  16. fclose($fp); //zamknicie pliku
  17.  
  18. include('licznik.txt');
  19. include ('index.html');
  20. ?>
  21.  


Ten post edytował Volume 9.01.2010, 17:56:07
Go to the top of the page
+Quote Post
renault12
post 9.01.2010, 18:09:12
Post #5





Grupa: Zarejestrowani
Postów: 147
Pomógł: 0
Dołączył: 9.01.2010

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


Gitara, wszystko śmiga.
Ale mam jeszcze jedno takie lamerskie pytanko:
Jak mogę zrobić by zapisywały się dane na poczatku w zasadzie chodzi mi o sortowanie, czytałem coś o tych funkcjach sortowania lecz nic mi nie wychodzi, jak mógłbyś mnie oswietlic to bylbym wdzieczny.
Go to the top of the page
+Quote Post
erix
post 9.01.2010, 18:30:09
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
! Popraw to i pewnie zadziała

Najpierw sprawdzaj, potem się bulwersuj. tongue.gif http://pl.php.net/manual/en/language.variables.basics.php

Cytat
Jak mogę zrobić by zapisywały się dane na poczatku

Musisz pobrać całość, dopisać przed zmienną i dopiero potem zapisać. Przy małych danych sprawdzi się to całkiem nieźle, ale na dłuższą metę - lepiej skorzystać z - chociażby - SQLite.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Volume
post 9.01.2010, 18:38:05
Post #7





Grupa: Zarejestrowani
Postów: 283
Pomógł: 11
Dołączył: 11.10.2004
Skąd: 3c

Ostrzeżenie: (10%)
X----


ja jeszcze od siebie dodam ze jesli masz serwer z PHP5 to zainteresuje sie:
file_put_contents
file_get_contents
Ominiesz w ten sposob flocki uchwyty itd.
A tu masz przyklad jak to wykorzystać na Twoim przykladzie:
  1. <?php
  2. $plik='daneuzyt.txt';
  3. $plik2='licznik.txt';
  4.  
  5. $plik_odczyt=file("daneuzyt.txt");
  6. $liczba=count($plik_odczyt);
  7. $dzialanie=$liczba+1;
  8. file_put_contents ($plik2,'input= '.$dzialanie,LOCK_EX);
  9.  
  10. $zczytany_plik=file_get_contents($plik);
  11. $do_zapisu=date("G:i:s d-m-y").' '.$_SERVER['REMOTE_ADDR']."\n".$zczytany_plik;
  12. file_put_contents ($plik,$do_zapisu,LOCK_EX);
  13. include('licznik.txt');
  14. ?>

Zwróc uwage zwłaszcza na:
  1. $zczytany_plik=file_get_contents($plik);
  2. $do_zapisu=date("G:i:s d-m-y").' '.$_SERVER['REMOTE_ADDR']."\n".$zczytany_plik;
Czyli z czytujesz caly juz zapisany plik po czym dopisujesz do niego na wstepie to co chcesz dodac.
Poza tym również polecam jesli tylko masz mozliwosc zrobić to w MySQLu

Ten post edytował Volume 9.01.2010, 18:42:39
Go to the top of the page
+Quote Post
renault12
post 9.01.2010, 18:56:46
Post #8





Grupa: Zarejestrowani
Postów: 147
Pomógł: 0
Dołączył: 9.01.2010

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


no tak, nie wpadłem na to : PP.
Dzięko

Volume, a pytanie mam jeszcze takie bo nie za bardzo mam jak sprawdzić, chodzi mi o to czy w pliku daneuzyt i licznik.txt bedzie te sortowanie ? Bo własnie chcialbym zeby bylo w obu plikach.

Z góry dzieki
Go to the top of the page
+Quote Post
Volume
post 10.01.2010, 09:45:15
Post #9





Grupa: Zarejestrowani
Postów: 283
Pomógł: 11
Dołączył: 11.10.2004
Skąd: 3c

Ostrzeżenie: (10%)
X----


A o jakie sortowanie Ci chodzi?
Jesli chodzi o tablice - czyli cos co mozna wykorzystać przy funkcji file to jest zestaw funkcji do sortowania (sort).
Jesli chcesz zwrócić tablicę z elementami w porzadku odwrotnym to array_reverse.

Ten post edytował Volume 10.01.2010, 09:49:59
Go to the top of the page
+Quote Post
renault12
post 10.01.2010, 11:13:39
Post #10





Grupa: Zarejestrowani
Postów: 147
Pomógł: 0
Dołączył: 9.01.2010

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


Ok sprawdziłem tamten kod i wszytko działa jak należy.
Tamten kod mi w pełni odpowiada.
Dzięki za wszystko.
Go to the top of the page
+Quote Post
TheArt
post 10.01.2010, 15:30:41
Post #11





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 20.09.2007

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


żeby nie zakładać tematu to tu zapytam, jak po otwarciu pliku wykasować jego zawartość (by zmienna zawsze zapisywała się jako jedyna)
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 Wersja Lo-Fi Aktualny czas: 23.04.2024 - 12:03