![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 2.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam bazę danych w pliku TXT. Otwieram
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 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Dzięki z góry. Ten post edytował Dariusz_512 6.01.2009, 17:49:10 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
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.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 555 Pomógł: 84 Dołączył: 20.02.2008 Skąd: Małopolska Ostrzeżenie: (0%) ![]() ![]() |
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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ten post edytował Skie 6.01.2009, 18:01:08 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 352 Pomógł: 9 Dołączył: 16.09.2005 Skąd: Rybnik Ostrzeżenie: (0%) ![]() ![]() |
Może to ci pomoże (IMG:http://forum.php.pl/style_emoticons/default/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). |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 2.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki Panowie. Obu należy się plus, choć wybrałem tą drugą metodę - lepiej dostosowaną do moich skryptów (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 17:51 |