Мониторинг папок и запуск событий по статусу папки в php - PullRequest
3 голосов
/ 15 ноября 2011

Существует папка, в которую xml-файлы копируются в определенное время, когда происходит событие.Я хочу, чтобы php-способ проверял состояние папки, и когда приходит xml-файл, запускается событие (например, вызов парсера xml).Итак, каков наилучший способ (в php) отслеживать папку и инициировать события в соответствии с ее состоянием?Thanx!

Ответы [ 4 ]

2 голосов
/ 15 ноября 2011

Не пробовал, но, возможно, Inotify может помочь вам:

inotify - это подсистема ядра Linux, которая расширяет файловые системы, чтобы замечать изменения в файловой системе и сообщать об этих изменениях приложениям.

Есть расширение PHP для inotify, см. Inotify Документы и inotify PECL .

Другая альтернатива, если вы работаете в Linux, - это использование PHP-независимого демона для отслеживания изменений в каталоге. Вы можете использовать dnotify для него (устарел inotify), что-то вроде:

dnotify -a -r -b -s /path/ -e <command>;

Она будет выполнять команду каждый раз, когда изменяется один из файлов в другой папке (-a -r -b -s = любой доступ / рекурсивный поиск в каталоге / запуск в фоновом режиме / без вывода).

Связанный:

0 голосов
/ 15 ноября 2011

Вы должны взглянуть на FAM (монитор изменения файлов) .Бинарное расширение на основе PHP 4 (бета-статус); Документация .

0 голосов
/ 15 ноября 2011

Я думаю, что самый простой способ сделать это - использовать cron job, чтобы проверять папку каждую минуту.Другой вариант - запустить ваш php-скрипт из другого скрипта / программы, которая копирует новый xml-файл в каталог.Cron позволяет запускать ваш скрипт каждую минуту.Если вы хотите получить мгновенный ответ, вы должны написать сценарий оболочки (http://aplawrence.com/Unixart/watchdir.html), который постоянно работает в фоновом режиме, или, может быть, перламутровый демон для обнаружения нового файла и запуска вашего php-сценария для проверки изменений.

0 голосов
/ 15 ноября 2011

Используйте cron для регулярного scandir() каталога.

...