Ответы пользователя по тегу PHP
  • Как осуществить вызов комманды tasklist(либо аналогов) из php?

    1. Посмотрите в сторону zabbix , разворачиваете сервер, вносите через веб-морду все ваши клиентские ПК, на клиентские ПК устанавливаете агента zabbix и собираете кучу полезной инфы, в том числе можно настроить мониторинг активности любого процесса.
    2. Если всё таки хотите собственное решение, то как вариант запускать нужное на клиентском ПК путём запуска утилиты pslist из скрипта PHP, но это в случае, если у вас сервер под Windows, если под Linux, то как вариант попробовать утилиту запустить под Wine.
    3. На клиентской машине включить службу telnet, а из скрипта на php соединятся и запускать tasklist.
    Ответ написан
    Комментировать
  • Алгоритм чтения большого количества файлов на php

    Возможен ещё вариант:
    1. Из браузера по AJAX фоном посылаем запрос на запуск процесса архивирования (ответа моно и не ждать), в php скрипте на сервере используем "set_time_limit(0)", чтоб скрипт не умер по таймоуту, в скрипте архивируем файлы и периодически в сессию пишем прогресс (сколько упаковано, сколько осталось, что сейчас упаковываем) и считываем из сессии некое значение, которое может сказать нам, что нужно прекратить процесс архивирования.
    2. Периодически из браузера делаем AJAX запрос, на сервере читаем значения прогресса из сессии и высылаем браузеру.
    3. Если нужно будет прервать процесс, то по AJAX посылаем серверу запрос, на сервере в сессии устанавливаем некое значение, которое скажет архивирующему скрипту, что нужно прекратить.

    Удобно тем, что да же если закрыть браузер, то процесс не остановится и при повторной попытке можно узнать, что ещё архивируется и получить статус.
    Ответ написан
    1 комментарий
  • Алгоритм чтения большого количества файлов на php

    1. Из браузера по AJAX запрашиваем список файлов требуемых для упаковки. В это время на сервере его подготавливаем и устанавливаем признак начала процесса (симофор, например: lock файл, который будут обязаны проверять другие скрипты, чтоб не изменять структуру каталогов и файлов, и что бы не запускался процесс архивирования повторно, пока есть работающий процесс).
    2. Если с сервера прийдёт сообщение, что процесс запущен, выводим в браузере сообщение.
    3. Если получили список файлов, то перебираем список и по AJAX поочерёдно отправляем запрос на добавления файла в архив, при этом можно выводить прогресс в браузере (сколько упаковано, сколько осталось, что сейчас упаковываем).
    4. Когда перебрали все файлы, то посылаем AJAX запрос и говорим серверу, что закончили, на сервере снимаем симофор, и посылаем в ответ url на скачивание архива (если необходимо).

    Только может возникнуть проблема, когда страницу в браузере закрыли, тогда симофор не снимется и повторно скрипт не заработает, для решения, можно проверять когда он был установлен и по истечении некого времени игнорировать, либо сделать кнопку принудительного запуска.
    Ответ написан
    Комментировать