Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Podwójnie wpisywane dane w fputs()
Vexis
post
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 1
Dołączył: 7.04.2017

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


Witam,

męczę się już kilka godzin z zagadnieniem dotyczącym zapisywania do pliku. Znalazłem w google tematy ludzi z podobnym problemem, ale nigdzie nie znalazłem rozwiązania, które u mnie by pomogło. Kłopotliwy kod:

  1. ...
  2. $plik = fopen($sciezka, "a");
  3.  
  4. ...
  5.  
  6. fputs($plik, $faktura);
  7. fclose($plik);
  8. //file_put_contents($sciezka, 'testowy string'.PHP_EOL, FILE_APPEND | LOCK_EX);
  9. ...


Problem polega na tym, że dane wpisane do pliku niezależnie od metody fputs (fwrite) czy file_put_contents są zdublowane. Zależy mi, żeby dane dopisywały się na końcu i zawsze dzieje się to podwójnie. Sprawdziłem i jestem pewien, że nigdzie w kodzie nie ma podwójnie wywołanej funkcji. Cały kod wykonuje się raz, a fputs zachowuje się jakby została wywołana podwójnie. Sprawdzałem i przełączyłem fopen w tryb "r+", użyłem fseek, żeby się przesunąć na koniec pliku i zauważyłem coś ciekawego. Jak jestem na końcu pliku i próbuje coś wpisać to się dubluje, jak się przesunę od końca na więcej niż potrzeba na wpisane danych to problem nie występuje. Wygląda na to, że w momencie kiedy "kończy" się plik to dane wpisywane są ponownie. Testowałem różne przeglądarki i różne komputery, wszędzie ten sam problem.

Nie mam już pomysłu jak to naprawić. Kombinowałem, żeby może po zapisie kasować z pliku dane, ale żeby to zrobić to muszę ponownie zapisać poprawione dane, które ponownie się dublują... Ktoś ma jakiś pomysł?

Ten post edytował Vexis 7.04.2017, 12:53:09
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Jak jestem na końcu pliku i próbuje coś wpisać to się dubluje, jak się przesunę od końca na więcej niż potrzeba na wpisane danych to problem nie występuje.
Bo jak przesuwasz za kazdym razem powiedzmy 10 do tylu, a tekst ma dlugosc 5 to chocbys i go 100 razy odpalil to zawsze bedziesz widzial swoj wpis tylko raz bo tekst w pliku jest nadpisywany a nie dopisywany.

Twoj kod odpala sie dwa razy i tyle. Chocby przez jakies mod rewrite czy inne podobne sytuacje. Ciezko wywrozyc nie majac calosci.
Go to the top of the page
+Quote Post

Posty w temacie
- Vexis   Podwójnie wpisywane dane w fputs()   7.04.2017, 12:51:23
- - nospor   CytatJak jestem na końcu pliku i próbuje coś wpisa...   7.04.2017, 12:58:26
|- - Vexis   Cytat(nospor @ 7.04.2017, 13:58:26 ) ...   7.04.2017, 13:07:49
- - nospor   Zrozum, alerta widzisz raz, bo to masz jako glowne...   7.04.2017, 13:10:13
- - Vexis   No właśnie chcę zrozumieć, ale chyba mi coś nie id...   7.04.2017, 13:16:46
- - Pyton_000   To teraz dodaj sobie Kodfile_put_contents(...   7.04.2017, 13:30:57
|- - Vexis   Cytat(Pyton_000 @ 7.04.2017, 14:30:57...   7.04.2017, 13:34:23
- - Pyton_000   To teraz potrenj czytanie ze zrozumieniem...   7.04.2017, 13:35:52
|- - Vexis   Cytat(Pyton_000 @ 7.04.2017, 14:35:52...   7.04.2017, 13:46:05
- - Pyton_000   No i co, dodało się raz... to teraz w tym twoim: ...   7.04.2017, 13:50:08
|- - Vexis   Cytat(Pyton_000 @ 7.04.2017, 14:50:08...   7.04.2017, 14:06:03
- - nospor   CytatDodało się dwa razy tylko ja skopiowałem jede...   7.04.2017, 14:07:03
|- - Vexis   Cytat(nospor @ 7.04.2017, 15:07:03 ) ...   7.04.2017, 14:10:47
- - Pyton_000   No po co ja pisałem żebyś wysłał zawartośc pliku.....   7.04.2017, 14:14:29
|- - Vexis   Cytat(Pyton_000 @ 7.04.2017, 15:14:29...   8.04.2017, 06:10:48
- - viking   Pokaz adres jesli jest publicznie dostepny.   7.04.2017, 14:14:36
- - nospor   CytatKtoś ma może pomysł gdzie dokładnie szukać pr...   8.04.2017, 10:39:53
|- - Vexis   Cytat(nospor @ 8.04.2017, 11:39:53 ) ...   13.04.2017, 06:05:10
- - Pyton_000   Po prostu zajebiste rozwiązanie.... Palce lizać......   13.04.2017, 11:34:38
- - Vexis   Poradziłem sobie tak jak na tę chwile potrafię. Ni...   13.04.2017, 12:36:34


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 18:04