Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Zapis do pliku przez otwartego przez fopen
axwell
post 1.11.2008, 14:31:35
Post #1





Grupa: Zarejestrowani
Postów: 143
Pomógł: 1
Dołączył: 14.11.2007

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


Mam pewnien plik dane.txt i otwieram go za pomocą fopen z parametrem "r+". W manualu php pisze "umieszcza wskaźnik na początku pliku". Niestety gdy mam jedne dane w pliku i próbuje zapisać nowe to stare się kasuję. Do pliku zapisywane są tylko nowe dane. Ktoś może wie czemu tak jest?
Go to the top of the page
+Quote Post
piotrooo89
post 1.11.2008, 14:38:00
Post #2


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




bo musisz użyć
  1. <?php
  2. $fp=fopen('dane.txt', 'w');
  3. fwrite($fp, '1');
  4. fwrite($fp, '23');
  5. fwrite($fp, 'sdsd');
  6. fclose($fp);
  7. ?>


i tak umieszcza wskaźnik na końcu a żeby było na początku w+


--------------------
Go to the top of the page
+Quote Post
axwell
post 1.11.2008, 14:45:30
Post #3





Grupa: Zarejestrowani
Postów: 143
Pomógł: 1
Dołączył: 14.11.2007

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


Niestety nadal to samo, stare dane kasują się. Dodam że chodzi mi o to, aby moje dane dopisały się PRZED tymi, które już istnieje
Go to the top of the page
+Quote Post
piotrooo89
post 1.11.2008, 14:46:40
Post #4


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




pokaż kod bez tego się nic nie zrobi...


--------------------
Go to the top of the page
+Quote Post
axwell
post 1.11.2008, 14:50:23
Post #5





Grupa: Zarejestrowani
Postów: 143
Pomógł: 1
Dołączył: 14.11.2007

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


  1. <?php
  2. $dane="||$nazwa_prog||$nazwa_pliku||$opis_pliku||$helplink||$testowany\n";
  3. $file="file/$dzial$rozsz";
  4. $fp=fopen("$file", "w+");
  5. fwrite($fp, $dane);
  6. fclose($fp);
  7. ?>
Go to the top of the page
+Quote Post
l0ud
post 1.11.2008, 14:54:30
Post #6





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

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


Nie da się dopisać w ten sposób do początku pliku. Musisz pobrać całą jego zawartość i skleić ciągi.

  1. <?php
  2. file_put_contents('dane.txt',file_get_contents('dane.txt')."$nazwa_prog||$nazwa_pliku||$opis_pliku||$helplink||$testowany||");
  3. ?>


[edit] W ten sposób można dopisywać do końca pliku, jak to pokazał piotrooo89 niżej

Ten post edytował l0ud 1.11.2008, 15:11:40


--------------------
XMPP: l0ud@chrome.pl
Go to the top of the page
+Quote Post
piotrooo89
post 1.11.2008, 14:58:45
Post #7


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




ja zrobiłem coś takiego i na bank dopisuje (sprawdziłem)

  1. <?php
  2. $dane='||$nazwa_prog||$nazwa_pliku||$opis_pliku||$helplink||$testowany';
  3. $fp=fopen('dane.txt', 'a');
  4. fwrite($fp, $dane);
  5. fclose($fp);
  6. ?>


teraz tylko pozmieniasz sobie tam gdzie masz zmienne żeby nie robiło go jako całego ciągu i będziesz miał.


--------------------
Go to the top of the page
+Quote Post
axwell
post 1.11.2008, 15:06:35
Post #8





Grupa: Zarejestrowani
Postów: 143
Pomógł: 1
Dołączył: 14.11.2007

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


piotrooo89 wiem, tak normalnie to mi też chodzi ale próbowałem właśnie zrobić żeby tekst dodawał się przed obecny. Możesz podać przykład jak to zrobić?
Go to the top of the page
+Quote Post
conel
post 1.11.2008, 16:29:15
Post #9





Grupa: Zarejestrowani
Postów: 28
Pomógł: 5
Dołączył: 26.08.2008
Skąd: Poznań

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


Jeżeli ma się dodawać PRZED obecną zawartość pliku, to możesz zrobić tak:

  1. <?php
  2. $dane = 'jakis tekst'; // tekst do zapisania
  3. $plik = 'plik.txt';
  4.  
  5. $str = file_get_contents($plik);
  6. $dane .= $str;
  7. file_put_contents($plik, $dane);
  8. ?>


Ten post edytował conel 1.11.2008, 16:29:37
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: 19.06.2025 - 10:34