Эта тема на forum.dklab.ru


KaMPiLeR: Как узнать результат выполнения ERRORLEVEL для ``?
???
dimagolov:
краткость сестра таланта, но не до такой же степени.....
Advanced Guest:
dimagolov,
А что непонятно?
В php есть команды для запуска в "оболочке", shell_exec например, `` это её аналог.
Когда Вы запускаете в досе какой-нибудь программа, то она может возвращать errorlevel.
Но поскольку он в output не печатается, то узнать его просто так нереально.
Отсюда вопрос - как это сделать
Rumata:
если знаете про обратные кавычки, то может быть внимательнее почитаете текст по ссылке http://php.net/manual/ref.exec.php ?
KaMPiLeR:
ok. Сенкс.
Как я понял существует несколько функций для запуска:
shell_exec - это аналог обратных кавычек, поэтому ERRORLEVEL этой функцией не посмотришь.
есть другая - exec.
У нее в качестве параметров можно задать переменную куда будет занесен результат выполнения.

Но попробывав ее в качестве распаковки RAR-архива, закаченного через HTTP, у меня скрипт умер.
Висит и не отвечает. Возможно это связано с примечанием, но обработчик закаченного архива у меня не работает в качестве демона.
Почему же он повис??
Note: Если вы собираетесь использовать эту функцию в программе, работающей в качестве демона, убедитесь, что стандартный вывод функции направлен в файл или другой поток, в противном случае PHP зависнет вплоть до конца выполнения программы.
KaMPiLeR:
обратные слеши нормально отрабатывают - нельзя посмотреть результат,
exec - зависает, но судя по документации - можно.
Даже ответ Юрия тут - не помог.
Юрий Насретдинов:
KaMPiLeR
Попробуйте весь вывод перенаправить в файл. Также могу предложить попробовать семейство функций proc_open() [ http://ru2.php.net/proc_open , смотрите сразу примеры ]
KaMPiLeR:
Юрий Насретдинов
Сенкс, то что нужно.
В дельфях тож так - простое через ShellExecute, а pgp через API. Забыл уже ))

Вопрос - вызываю rar32.exe, env никак правильно заполнить для него не могу. Я конешно вставил в первый параметр proc_open, но всетаки хочется для чистоты кода...
Юрий Насретдинов:
KaMPiLeR
Работает :)?
но всетаки хочется для чистоты кода...
Ну если работает, можете и не заполнять ничего :).

Эта тема на forum.dklab.ru