Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapisywanie wartości w danej lininijce
Forum PHP.pl > Forum > Przedszkole
_Cartman
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ę.
Kshyhoo
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...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.