Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zapisywanie wartości w danej lininijce, Jam można zapisać dane w wybranej linii?
_Cartman
post 19.02.2005, 18:19:34
Post #1





Grupa: Zarejestrowani
Postów: 134
Pomógł: 0
Dołączył: 28.01.2005
Skąd: Byczyna

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


Witam

W jaki sposób można zapisac jakąś wartosc do pliku w ktorym zapisane są 3 linie, a chce, aby zmieniona została wartość tylko tej trzeciej i czy w dwóch poprzednich muszą być znaczniki \n? iwm, że temat był już poruszany na forum, ale nigdzie nie mogę go znaleść.

Bardzo proszę o pomoc i z góry dziękuję.


--------------------
hmmm.... :)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Kshyhoo
post 19.02.2005, 18:45:25
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Nie kituj, ja wyszukałem to:
===========================================
Zapis do pliku

Aby poprawnie i bezpiecznie zapisywać dane do plików,
musimy poznać klika istotnych funkcji. Pierwsza najważniejsza funkcja to fopen() - otwórz plik
  1. <?php
  2. $fp=fopen(&#092;"atrybut1\", \"atrybut2\");
  3. ?>

Funkcja ta posiada dwa atrubuty:
pierwszy to nazwa pliku, drugi to tryb otwarcia. Tryby otwarcia to po prostu określenie czy plik ma zostać otwarty tylko do odczytu, zapisu, zamazania itp... Nam najbardziej będą służyć na początek cztery tryby:

1. tryb "a" - otwarcie do dopisania wartości
2. tryb "r" - otwarcie do odczytu
3. tryb "r+" - otwarcie do odczytu i dopisania
4. tryb "w" - otwarcie do zapisania, poprzednia zawartość pliku jest zamazywana

I tak na przykład aby otworzyć i dopisać np. maila do listy mailowej funkcja fopen() będzie wyglądała tak:
  1. <?php
  2. $fp=fopen(&#092;"lista.txt\", \"a\");
  3. ?>

Druga funkcja to fwrite() lub fputs() obydwie funkcje służą do zapisu danych do pliku. W kodzie będzie to więc wyglądać np. tak:
  1. <?
  2. $dane=&#092;"tekst do wprowadzenian\";
  3. $file=&#092;"lista.txt\";
  4. $fp=fopen(&#092;"$file\", \"a\");
  5. fwrite($fp, $dane);
  6. fclose($fp);
  7. ?>

w powyższym przypadku tekst zawarty w zmiennej $dane zostanie dopisany na końcu pliku.

No tak, ale co się stanie jeśli jednocześnie Ala i Zuzia będą nam wprowadzać dane, istnieje duża możliwość że zawartość pliku zostanie po prostu zniszczona. Aby tego uniknąć trzeba poznać jeszcze jedną funkcję flock() Funkcja ta również posiada dwa atrybuty, pierwszy to nazwa pliku przechowywana już w zmiennej $fp, drugi to cyferka. flock() pozwala nam na zablokowanie pliku na czas odczytu lub zapisu. W kodzie będzie to teraz wyglądać tak:
  1. <?
  2. $dane=&#092;"tekst do wprowadzenian\";
  3. $file=&#092;"lista.txt\";
  4. $fp=fopen(&#092;"$file\", \"a\");
  5. flock($fp, 2); //blokujemy
  6. fwrite($fp, $dane);
  7. flock($fp, 3); //odblokowujemy
  8. fclose($fp);
  9. ?>

Jeszcze jedną istotną rzeczą jest to że do odczytu
drugi parametr flock() będzie wynosił 1 przy blokowaniu i 3 przy odblokowywaniu. Natomiast przy otwarciu do zapisu drugi parametr flock() będzie wynosił 2 przy blokowaniu i 3 przy odblokowywaniu. To tyle na początek, aby poćwiczyć na najprostszych przykładach...


--------------------
Go to the top of the page
+Quote Post

Posty w temacie


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: 14.08.2025 - 14:22