![]() |
|
Модераторы: Aliance, skyboy, MoLeX, ksnk |
![]()
|
|
| underwater |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 30.7.2007 Репутация: нет Всего: нет |
Проблема такая , надо открыть файл и записать браузер зашедшего , причем не просто в файл добавить строку а добавить уже к имеющемуся числу единичку,все данные храню в сериализированном массиве.При заходе большого числа посетителей файл просто обнуляется.
|
|||
|
||||
| sTa1kEr |
|
|||
|
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 5 Всего: 146 |
underwater, я вижу в вашем коде разблокирование файла, но не вижу где вы его блокируете. И еще flock() не работает в Windows.
|
|||
|
||||
| underwater |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 30.7.2007 Репутация: нет Всего: нет |
flock($handle, LOCK_EX);
пропустил строчку |
|||
|
||||
| underwater |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 30.7.2007 Репутация: нет Всего: нет |
Поррекомендовали создавать темп файл туда класть обновленную информацию а затем либо rename либо copy.Проверяю сейчас
|
|||
|
||||
| Anarki |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 326 Регистрация: 14.3.2005 Репутация: 2 Всего: 11 |
С чего бы это? Не работает только на FAT файловых системах. и еще в Windows работает жесткая блокировка, а не рекомендательная Добавлено @ 00:26 underwater, Советовал бы разобраться в своем коде или хотя бы привести его кусок полностью. Ибо ничего не говорит где она пропущена И еще если снимаете блокировку вручную то перед этим вызываете fflush(); Это сообщение отредактировал(а) Anarki - 31.7.2007, 00:27 |
|||
|
||||
| sTa1kEr |
|
|||
|
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 5 Всего: 146 |
||||
|
||||
| triclosan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 515 Регистрация: 18.8.2006 Репутация: нет Всего: 12 |
Скажите пожалуйста, если файл залочен путем flock вторая копия скрипта остановится и будет ждать отлоченья или выбросит исключение/ошибку? (В хелпе не нашел)
|
|||
|
||||
| GeneralElectric |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 797 Регистрация: 11.1.2008 Репутация: 0 Всего: 16 |
А самому попробовать? А предположить, как будет правильнее? ;-)
По поводу первоначального вопроса, хоть и устаревшего. Ситуация фантастическая. Блокировка там явно стоит где надо, и все делается правильно. Судя по всему, автор где-то напутал, и именно этим вызвано то, что он никак в теме не отписался... |
|||
|
||||
| FractalizeR |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 273 Регистрация: 27.12.2007 Где: Россия/Москва Репутация: нет Всего: 4 |
Зависит от параметра wouldblock. Исключения и ошибки flock не порождает. Если wouldblock = false и блокировку захватить не удалось, вернет false. Если wouldblock = true, думаю, будет висеть, пока его php не прибьет по time_limit или пока блокировку не захватит. -------------------- Чтобы поблагодарить или наоборот поругать участника форума лучше пользоваться значками "+" и "-", изменяющими репутацию. Они находятся слева от поста под именем пользователя. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Тексты | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |