VGTsXVII
22.05.2003, 18:12:00
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
23.05.2003, 09:49:25
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
23.05.2003, 11:11:57
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ć?
kurtz
23.05.2003, 12:07:37
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