![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 200 Pomógł: 1 Dołączył: 4.08.2012 Ostrzeżenie: (10%) ![]() ![]() |
witam, oprocz bledu zadam o razu 2. pytanie aby nie zakladac nowego watku. ale najpierw blad (IMG:style_emoticons/default/wink.gif)
kod:
wyskakuje error - Warning: fclose() expects parameter 1 to be resource, integer given in... moglby ktos wyjasnic dlaczego? wydaje mi sie ze uzylem wszystkiego jak nalezy, fclose wymaga uchwytu, jest uchwyt: $fp. ale mimo wszystko napewno cos zle zrobilem wiec prosze o wskazanie bledu. i teraz pytanie: na kursie wyczytalem ze nalezy zamykac pliki funkcja fclose gdy skonczymy cos do nich zapisywac. bylo to dosyc mocno podkreslone. tutaj nie zamknalem ani $fp ani $fp2 i cały skrypt (wydaje sie ze) dziala jak nalezy. stad moje pytanie: co jezeli ignorowaloby sie zamykanie plikow, jakie sa konsekwencje? dziekuje i pozdrawiam |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 476 Pomógł: 96 Dołączył: 10.04.2008 Skąd: Koszalin Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 318 Pomógł: 76 Dołączył: 27.12.2011 Skąd: Dąbrowa Górnicza Ostrzeżenie: (0%) ![]() ![]() |
Lekka poprawka, mam nadzieje, że nie poczujesz się urażony, a jedynie to co dodam pomoże Ci w dalszym pisaniu (IMG:style_emoticons/default/smile.gif)
Pyt. 1#: Zapomniałeś o wpisaniu apostrofu(czy jak to się tam zwie) w drugim parametrze funkcji fopen() w obu przypadkach, co prawdopodobnie skutkowało błędem. Ooops, faktycznie, tak jak kolega wyżej zauważył to na pewno wina przypisania zmiennej $fp do funkcji fwrite, ale myślę, że konstrukcja fopen() bez apostrofów również dałaby błąd. Pyt. 2#: Nie znam prawidłowej odpowiedzi, ale przypuszczam, że wiąże się to z zwolnieniem pamięci. Ten post edytował untorched 26.08.2012, 01:30:24 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
@untorched: Formalnie, wypadałoby jeszcze sprawdzać czy fwrite i fclose wykonały się w pełni poprawnie. Ot, cudowne API PHP-owskiej biblioteki standardowej.
@michat34: W momencie gdy skrypt PHP kończy swoją pracę wszystkie zewnętrzne zasoby (m.in. uchwyty do plików) są zamykane i zwalniane. Także nawet jeżeli byś w skrypcie mocno nawalił, istnieje duże prawdopodobieństwo, że nic złego się nie stanie. Nie mniej jednak, niezamknięcie pliku: 1. Niepotrzebnie wydłuża czas, gdy jest on otwarty, czyli wydłuża czas istnienia blokady systemowej na pliku. 2. Nie jestem pewien jak wygląda dokładnie implementacja fwrite w PHP, ale istnieje szansa, że jeżeli nie zamkniesz pliku w pewnych przypadkach żadne dane nie zostaną do niego zapisane. Tu należy pamiętać, że ostatecznie PHP zwalnia wszystkie zasoby, ale istnieje możliwość, że jego praca zostanie gwałtownie przerwana (np. brak zasilania). |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 200 Pomógł: 1 Dołączył: 4.08.2012 Ostrzeżenie: (10%) ![]() ![]() |
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 318 Pomógł: 76 Dołączył: 27.12.2011 Skąd: Dąbrowa Górnicza Ostrzeżenie: (0%) ![]() ![]() |
faktycznie a jak to poprawic? powinienem po fwrite na nowo go otworzyc (fopen) i wtedy zamknac? To o czym mówisz zostało poprawione w skrypcie który podałem (IMG:style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 10:49 |