Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: O blokoawniu plików
Forum PHP.pl > Forum > PHP
VGTsXVII
Witam wszystkich

Mam dwa pytania w związku z blokowaniem dostępu do plików.
[php:1:bc753a5900]
$handle = fopen("gfx_wpisy.php", "a");
while (flock($handle, LOCK_EX)==false) flock($handle, LOCK_EX);
fwrite($handle, $wpis);
fclose($handle);
flock($handle, LOCK_UN);
[/php:1:bc753a5900]

Powyższy fragment przedstawia sytuację zapisu na końcu pliku $handle zmiennej $wpis. W tym przypadku miałbym tylko prośbę, by ocenić czy nie ma błędu przy blokowaniu pliku. Wpis jest do bazy danych więc nic nie może być pominięte jak np. przy licznikach i jeżeli nie ma dostępu to ma czekać, az go uzyska.

Natomiast większy problem mam z wczytywaniem. Zawartość tej bazy danych jest wrzucana na stronę poprzez instrukcję INCLUDE i nie za bardzo wiem, w jaki sposób w tym momencie nałożyć na plik blokadę dzieloną.

Będę wdzięczny za wszelką pomoc.



_______________________________
zmoderowane przeze mnie, Jabol
kurtz
Cytat
Zawartość tej bazy danych jest wrzucana na stronę poprzez instrukcję INCLUDE i nie za bardzo wiem, w jaki sposób w tym momencie nałożyć na plik blokadę dzieloną.
hmm
nalozyc rownoczesnie blokade przed includem albo dorzucic proste semafory.
VGTsXVII
OK. Dzięki za pomoc.

No a co w związku z tym załączonym przykładem. Czy skrypt bedzie czekac z wpisem aż plik zostanie udostępniony bo kompletnie nie wiem, w jaki sposób to przetestować?questionmark.gif
kurtz
Cytat
OK. Dzięki za pomoc.

No a co w związku z tym załączonym przykładem. Czy skrypt bedzie czekac z wpisem aż plik zostanie udostępniony bo kompletnie nie wiem, w jaki sposób to przetestować???
tak. wyglada na to ze bedzie tak jak mowisz - poki nie uzyska praw LOCK_EX niczego nie zrobi.

z gory jednak przestrzegam - taki while troskze niepotrzebnie bedzie zapychac pamiec - lepeij dorzucic jakiegos sleepa czy usleepa.

pozdrawiam
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.