Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Usuwanie treści PHP
Forum PHP.pl > Forum > Przedszkole
Dariusz_512
Witam

Mam bazę danych w pliku TXT.

Otwieram

  1. <?php
  2. $nazwa = 'db.txt';
  3. $plik = fopen($nazwa,"r");
  4. $zmienne = fread($plik,filesize($nazwa));
  5. ?>


Wyświetlam i edytuje. To co powpisuje do formularzy trafia na sito funkcji kilku funkcji implode.
Powstaje w końcu zmienna $dozapisu której treść ma nadpisać dotychczasowe dane w bazie. Jak mam je skasować? Przydałby się tryb otwarcia pliku tylko do nadpisania winksmiley.jpg

Dzięki z góry.
phpion
O ile dobrze Cię zrozumiałem to otwórz plik w trybie 'w+' zamiast 'r'. Spowoduje to otwarcie pliku do zapisu z wcześniejszym skasowaniem aktualnej zawartości.
Skie
Cytat(phpion @ 6.01.2009, 17:50:25 ) *
O ile dobrze Cię zrozumiałem to otwórz plik w trybie 'w+' zamiast 'r'. Spowoduje to otwarcie pliku do zapisu z wcześniejszym skasowaniem aktualnej zawartości.


Z tego co pamiętam to takie otwarcie pliku rzeczywiście, skasuje zawartość, ale NIE zapamięta zawartości. Zrobiłbym to na Twoim miejscu tak:

1. Otworzył plik db.txt w trybie 'a+'
2. Pobrał zawartość tak jak to teraz robisz, aż będziesz mieć tą zmienną $dozapisu
3. za pomocą funkcji ftruncate() wyczyścił otwierany plik.
4. A na koniec zapisał $dozapisu za pomocą fwrite() i zamknął potem plik fclose()

To tyle smile.gif
_Martin_
Może to ci pomoże smile.gif

Kod
Lista możliwych trybów dla fopen()  używając tryb     tryb      Opis
'r'     Otwiera tylko do odczytu; umieszcza wskaźnik pliku na jego początku.
'r+'     Otwiera do odczytu i zapisu; umieszcza wskaźnik pliku na jego początku.
'w'     Otwiera tylko do zapisu; umieszcza wskaźnik pliku na jego początku i obcina plik do zerowej długości. Jeśli plik nie istnieje to próbuje go utworzyć.
'w+'     Otwiera do odczytu i zapisu; umieszcza wskaźnik pliku na jego początku i obcina plik do zerowej długości. Jeśli plik nie istnieje to próbuje go utworzyć.
'a'     Otwiera tylko do zapisu; umieszcza wskaźnik pliku na jego końcu. Jeśli plik nie istnieje to próbuje go utworzyć.
'a+'     Otwiera do odczytu i zapisu; umieszcza wskaźnik pliku na jego końcu. Jeśli plik nie istnieje to próbuje go utworzyć.
'x'     Tworzy i otwiera plik tylko do zapisu; umieszcza wskaźnik pliku na jego początku. Jeśli plik juz istnieje, wywołanie fopen() nie powiedzie się, zwróci FALSE i wygeneruje błąd na poziomie E_WARNING. Jeśli plik nie istnieje, spróbuje go utworzyć. To jest równoważne z określeniem flag O_EXCL|O_CREAT stosowanym w wywołaniu systemowym open(2).
'x+'     Tworzy i otwiera plik odczytu i zapisu; umieszcza wskaźnik pliku na jego początku. Jeśli plik juz istnieje, wywołanie fopen() nie powiedzie się, zwróci FALSE i wygeneruje błąd na poziomie E_WARNING. Jeśli plik nie istnieje, spróbuje go utworzyć. To jest równoważne z okresleniem flag O_EXCL|O_CREAT stosowanym w wywołaniu systemowym open(2).
Dariusz_512
Dzięki Panowie. Obu należy się plus, choć wybrałem tą drugą metodę - lepiej dostosowaną do moich skryptów smile.gif

Mój mózg się przeliczył szukając jedynie słów z rodziny "nadpisanie". Wstyd się przyznać, ale czytałem tą tabelkę pobieżnie...

Działa smile.gif
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.