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

  • Автор темы Автор темы ynezh
  • Дата начала Дата начала

ynezh

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

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

-~{}~ 16.06.08 10:13:

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

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

После прочтения и осмысления попробуй описать проблему более глобально: для чего тебе нужно блокировать файл таким образом?
 
Автор оригинала: Wicked
Так что прихожу к выводу, что тебе сюда: http://phpfaq.ru/na_tanke

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

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

-~{}~ 16.06.08 11:09:

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

-~{}~ 16.06.08 08:30:

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

-~{}~ 16.06.08 08:30:

вот за что я люблю менеджеров, они отфильтровывают большую часть глупых вопросов.
Простите пожалуйста, но я вовсем новичок в этом деле, как в моей ситуации использовать систему контроля версий?
 
бред какой-то.
для совместного редактирования файлов используют системы контроля версий.
а для совместного редактирования табличной информации - базы данных :)
 
Автор оригинала: Wicked
а для совместного редактирования табличной информации - базы данных :)
все понятно, но задача стоит так, и это не обсуждается к сожалению.
Можно что-то сделать в этой ситуации?
 
Автор оригинала: *****
Возьми, да попробуй.
Так же, попробуй открыть файл на чтение+запись.
и посмотри.
Попробовала, если файл открыт в excel другим пользователем, то flock спокойненько его блокирует.
 
А is_writable() что скажет?

Другое дело - как ты собираешься запрешать редактировать через ФС, когда файл "редактируется" скриптом?
 
когда файл, например, 1.xls открыт в экселе, создается ещё один файл - ~$1.xls, по нему можно определить, открыт файл или нет.

правда если криво закрыть эксель, этот файл не удалится
 
Автор оригинала: *****
Другое дело - как ты собираешься запрешать редактировать через ФС, когда файл "редактируется" скриптом?
Да к, вот и не знаю. Может менять атрибут у файла 'Только на чтение' ? Или это совсем не годится?
 
я бы его просто переименовывал нафиг.
а вместо него подсовывал пустышку с текстом внутри "Файл находится на редактировании через веб интерфейс.
редактирует Пупкин В.В., начал в 12-22 05.08"
 
функция is_writable тоже возвращает true, если файл открыт другим пользователем.

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

PHP:
$res = rename($f,$f);

теперь буду думать как запретить редактировать через ФС, если редактируется скриптом.

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