Проверка занятости файла

ynezh

Новичок
Проверка занятости файла

Подскажите, пожалуйста, как средствами php определить запущен кем-то(на прямую с excel) файл xls или нет?

-~{}~ 16.06.08 10:13:

Не понятно?
т.е. если файл будет открыт в excel другим пользователем, то в php не выполниться flock?
Нужно следующее, если файл открыт в excel, то не давать нажимать кнопку редактирования в php. Если в php нажали кнопку редактирвания, то не давать запускть этот файл в excel, пока не будет нажата кнопка сохранить или не выйдут со странички.
 

Wicked

Новичок
то не давать нажимать кнопку редактирования в php
в пхп нету никаких кнопок редактирования.

Если в php нажали кнопку редактирвания, то не давать запускть этот файл в excel, пока не будет нажата кнопка сохранить или не выйдут со странички.
к моменту, когда страничка полностью отобразилась в браузере, PHP уже завершает свою работу. Так что прихожу к выводу, что тебе сюда: http://phpfaq.ru/na_tanke

После прочтения и осмысления попробуй описать проблему более глобально: для чего тебе нужно блокировать файл таким образом?
 

ynezh

Новичок
Автор оригинала: Wicked
Так что прихожу к выводу, что тебе сюда: http://phpfaq.ru/na_tanke

После прочтения и осмысления попробуй описать проблему более глобально: для чего тебе нужно блокировать файл таким образом?
Попытаюсь описать проблему более глобально.
Есть xls файл, этот файл просматривает и редактирует куча народа. Начальством было решено написать Web доступ, но помимо того что он доступен на редактирование через Web, его также редактируют напрямую через excel. Следовательно тот кто редактирует должен видеть актуальную информацию. Поэтому на просмотр доступно всегда всем, а скрипт редактирвания можно вызвать только тогда, когда его никто не редактирует и соответственно в excel должен открываться только на чтение, если в данный момент у кого-то открыто окно со скриптом редактирования.

Автор оригинала: Wicked
в пхп нету никаких кнопок редактирования.
Это условно написано т.е. кнопка которая вызывает скрипт редактирвания (с формой редактированя.)

-~{}~ 16.06.08 11:09:

в пхп можно хранить в каком-то файле 0 или 1 чтобы определить редактируется xls файл в данный момент или нет, а вот как определить занят(открыт) xls файл в excel(на прямую) и как не дать редактировать в excel не знаю?
 

AmdY

Пью пиво
Команда форума
бред какой-то.
для совместного редактирования файлов используют системы контроля версий.

-~{}~ 16.06.08 08:30:

вот за что я люблю менеджеров, они отфильтровывают большую часть глупых вопросов.
 

ynezh

Новичок
Автор оригинала: AmdY
бред какой-то.
для совместного редактирования файлов используют системы контроля версий.

-~{}~ 16.06.08 08:30:

вот за что я люблю менеджеров, они отфильтровывают большую часть глупых вопросов.
Простите пожалуйста, но я вовсем новичок в этом деле, как в моей ситуации использовать систему контроля версий?
 

Wicked

Новичок
бред какой-то.
для совместного редактирования файлов используют системы контроля версий.
а для совместного редактирования табличной информации - базы данных :)
 

ynezh

Новичок
Автор оригинала: Wicked
а для совместного редактирования табличной информации - базы данных :)
все понятно, но задача стоит так, и это не обсуждается к сожалению.
Можно что-то сделать в этой ситуации?
 

ynezh

Новичок
Автор оригинала: *****
Возьми, да попробуй.
Так же, попробуй открыть файл на чтение+запись.
и посмотри.
Попробовала, если файл открыт в excel другим пользователем, то flock спокойненько его блокирует.
 

Фанат

oncle terrible
Команда форума
А is_writable() что скажет?

Другое дело - как ты собираешься запрешать редактировать через ФС, когда файл "редактируется" скриптом?
 

Beavis

Banned
когда файл, например, 1.xls открыт в экселе, создается ещё один файл - ~$1.xls, по нему можно определить, открыт файл или нет.

правда если криво закрыть эксель, этот файл не удалится
 

ynezh

Новичок
Автор оригинала: *****
Другое дело - как ты собираешься запрешать редактировать через ФС, когда файл "редактируется" скриптом?
Да к, вот и не знаю. Может менять атрибут у файла 'Только на чтение' ? Или это совсем не годится?
 

Фанат

oncle terrible
Команда форума
я бы его просто переименовывал нафиг.
а вместо него подсовывал пустышку с текстом внутри "Файл находится на редактировании через веб интерфейс.
редактирует Пупкин В.В., начал в 12-22 05.08"
 

ynezh

Новичок
функция is_writable тоже возвращает true, если файл открыт другим пользователем.

а вот через rename работает

PHP:
$res = rename($f,$f);
теперь буду думать как запретить редактировать через ФС, если редактируется скриптом.

Спасибо за идеи.
 
Сверху