![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 1 Dołączył: 28.10.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Próbowałem zastosować flock() w swoim skrypcie dla odczytu pliku xml, niestety nie dało to pozytywnego efektu. tj albo wywala mi błąd, albo gdy skrypt jest uruchamiany parokrotnie w tym samym czasie flock nie działa, wszystkie naraz grzebia w pliku. przykładowy kod:
czasami pojawiający się błąd: flock() expects parameter 1 to be resource, string given. Czy robię coś nie tak? Wersja php: 5.3.5 Moje pytanie: Czy istnieje odpowiednik dla flock dla plików xml, w przypadku odczytywania przy pomocy DomDocument::load()? Ten post edytował axxxon 12.07.2011, 09:06:15 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
A jak to testowałeś? To ma bronić przed zapisem a nie przed odczytem.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 1 Dołączył: 28.10.2010 Ostrzeżenie: (0%) ![]() ![]() |
Testowałem to z różnymi opcjami fopen() zarówno dla "r","r+","w", a także "c+", efekt jest jednak taki sam:
albo pojawia się pokazany wyżej błąd albo plik zostaje zepsuty. Ogólnie chodzi mi o to żebym w jednym skrypcie przy wywołaniu DomDocument::load() blokował on odczyt i zapis pliku do momentu wywoałania DomDocument::saveXml(), chciałbym wykorzystać flock'a do tego własnie... |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Zastosowałeś:
LOCK_EX to acquire an exclusive lock (writer). A wystarczyło poczytać manuala: LOCK_UN to release a lock (shared or exclusive). |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 1 Dołączył: 28.10.2010 Ostrzeżenie: (0%) ![]() ![]() |
Dobra, rozumiem tylko teraz pytanie, odnośnie 2 błędu. Skąd on się bierze?
czasami pojawiający się błąd: flock() expects parameter 1 to be resource, string given. Edit: a co odnosnie locków dla plików otwieranych i zmienianych przez DomDocument::load() i DomDocument::save() - czy istnieje bezpośrednia opcja ich lockowania? Ten post edytował axxxon 12.07.2011, 12:17:01 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Musi to być zasób, co oznacza że pewnie fopen zwraca błąd ;]
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 1 Dołączył: 28.10.2010 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 13:18 |