Size: a a a

2021 May 15

🎱🇷

🎱 🄰🄿🅃🄴🄼🄾🄷 🇷🇺... in phpclub.ru
Вариант!
Спасибо!

Ещё не забыть удалить старый файл 🙈
источник

G[

Greenphp [147/1000] in phpclub.ru
батя пришел с работы, накрывайте на стол
источник

I

InfinityGeek in phpclub.ru
батя, а ты жрать-то принес? мы уже 3 день голодаем
источник
2021 May 17

LH

Lilia Horshkovska in phpclub.ru
источник
2021 May 18

Р

Рустамжонов Диёрбек... in phpclub.ru
Здравствуйте
источник

Р🔐

Роман 🔐 KRD in phpclub.ru
Ребят, есть необходимость сделать счетчик (счетчик заявок), не используя БД.
Создаю файл какой-нить текстовый order.txt и в него сую просто одно число.
Затем при каждом обращении считываю это число из файла, присваиваю заявке, увеличиваю на 1 и записываю обратно.
Какой самый правильный способ блокировки файла на случай, если к нему обратится сразу 2 или более пользователей? Чтобы второй "подождал", пока первый с файлом закончит..
источник

Р🔐

Роман 🔐 KRD in phpclub.ru
flock(), верно?
источник

🎱🇷

🎱 🄰🄿🅃🄴🄼🄾🄷 🇷🇺... in phpclub.ru
для put есть флаг
источник

🎱🇷

🎱 🄰🄿🅃🄴🄼🄾🄷 🇷🇺... in phpclub.ru
file_put_contents
LOCK_EX
источник

🎱🇷

🎱 🄰🄿🅃🄴🄼🄾🄷 🇷🇺... in phpclub.ru
хотя, тот же flock()
источник

Р🔐

Роман 🔐 KRD in phpclub.ru
дык смотри: я file_get_content-ом получаю строку, добавляю 1 и делаю file_put_content. А если между чтением и записью еще кто-то вклинится?
источник

🎱🇷

🎱 🄰🄿🅃🄴🄼🄾🄷 🇷🇺... in phpclub.ru
LOCK_EX
при записи и невклинится
источник

Р🔐

Роман 🔐 KRD in phpclub.ru
это понятно.. а надо между чтением и записью, а не только во время записи
источник

Р🔐

Роман 🔐 KRD in phpclub.ru
как вам вот такой вариант?
while (!@mkdir("file.lock")) {
  // use the file
  fopen("file"...)
  @rmdir("file.lock")
}
источник

Р🔐

Роман 🔐 KRD in phpclub.ru
второй пользователь же будет ждать, пока не исчезнет file.lock?
источник

DV

Dmitry Vylegzhanin in phpclub.ru
Отличный вариант, пока вдруг кто-то не забудет удалить файл. Flock() лучше
Ну и cpu будет кушать
источник

Р🔐

Роман 🔐 KRD in phpclub.ru
fopen();
flock();
Где гарантия, что между открытием и блокировкой никто не вклинится?

и второе: flock() не даст записать, но даст прочитать содержимое. А мне надо, чтобы этого нельзя было сделать
источник

DV

Dmitry Vylegzhanin in phpclub.ru
Читаем после flock()
+ там есть LOCK_EX
источник

DV

Dmitry Vylegzhanin in phpclub.ru
Все модифицирующие доступы должны быть завернуты в flock, а читатели (которым не надо делать read-modify-write) будут корректно читать с shared блокировкой
источник

DM

Dmitry MiksIr in phpclub.ru
гарантии нет ибо пофиг сколько процессов у тебя открыли один и тот же файл
источник