PHP из командной строки. Отрытие окна броузера.

Poizzz

Guest
PHP из командной строки. Отрытие окна броузера.

Здравствуйте.
Проблема в следующем - написал скрипт на PHP работающий через командную строку. Всё отлично функционирует, и как результат работы генерируется "отчёт" с уникальным URL'ом в местной интрасети. Но как после исполнения .bat файла автоматически окрыть в окне броузера этот отчёт? Вывод ведь идёт в shell как вывод а не команды ДОС.

Как вариант вижу либо передача адреса отчёта из скрипта в .bat файл (т.е. обратная передача переменных), но не представляю как это сделать, либо есть возможность из самого скрипта перенаправить команду открытия окна (команда open в JSCRIPT) не в STDOUT а куда-то ещё. Только вот куда? :)
 

Poizzz

Guest
По сути да. На сервере находится ПО которое запускает bat'ник, на этом же сервере находится и web-сервер
 

Кром

Новичок
>По сути да. На сервере находится ПО которое запускает bat'ник, на этом же сервере находится и web-сервер

Почему бы тебе не сделать по другому принципу. Ты открываешь броузер, и пишешь туда свой уникальный URL, обращение к которому и генерирует отчет. Без всяких bat файлов.
 

Poizzz

Guest
:) На сегодняшний момент именно так и происходит
Но дело в том что в день это нужно делать очень много раз. А это сами понимаете - время. А производство требует ускорения процесса. Вообщем не хочу ударяться в демогогию. Перефразируя знаменитую фразу "Автоматизация должна быть автоматизированной". Вожди приказали, значит надо делать.
Есть какие-нить варианты? Буду очень признателен.
 

Z.O.S.

Новичок
А может не через BAT это все делать, а через тот же пхп, просто юзер заходит на линк типа: server.ru/index.php,
этот index запускает твой скрипт который возвращает результат (URL), а index его выкидывает в браузер header'ом???
 

Кром

Новичок
Poizzz
Вообще "открытие окна бруозера" это неправильный вариант. Давай сразу так и определимся. Чтобы откинуть этот вариант.

Если твое начальство хочет получать отчеты очень оперативно, то пусть скрипт отрабатывает по крону, а начальству отсылается отчет по мылу.

И второй вариант. Скрипт тоже работает по крону, а данные складывает в базу. У тебя будет ссылка (которое все начальство знает):
http://example.com/stat/
И пусть в ней будет список всех отчетов в виде:
26.07.2005 16:00:00 - отчет 4
26.07.2005 14:00:00 - отчет 3
26.07.2005 12:00:00 - отчет 3
25.07.2005 14:00:00 - отчет 2
24.07.2005 14:00:00 - отчет 1
На странице 20 последних отчетов, остальные в архив.
 

svetasmirnova

маленький монстрик
>Вообще "открытие окна бруозера" это неправильный вариант.
Согласна, но если уж совсем никак, то в конце скрипта exec('/path/to/iexplore.exe url')
 

Кром

Новичок
>Согласна, но если уж совсем никак, то в конце скрипта exec('/path/to/iexplore.exe url')

И где этот IE с отчетом будет открываться, у начальника на десктопе? :)
 

svetasmirnova

маленький монстрик
Так он вроде сказал, что у него весь комплект у начальника на десктопе :)
 

svetasmirnova

маленький монстрик
Ну если "на поверку", тогда да. И ты прав однозначно, что это бред. Я так и представляю себе начальника, у которого к концу дня штук так 25 окон IE открыто со статистикой :)
 

Poizzz

Guest
Я возможно не так дал понять суть задачи. Попробую поподробнее:
Сидит человек который выводит наряды заданий в цех (вовсе не начальник!:) ). Он запускает специализированное ПО в котором выбирает партию заказов, нажимает печать и на экран последовательно выводятся (утрированно) -
Наряд в цех 1
Наряд в цех 2
Наряд в цех 3
и т.п.
Но программа в силу своей неполноценности не может вывести задания на все цеха, но зато она вместо (например) "задания в цех 4" может запустить бат'ник. Вот к этому батнику я и привязываю php-скрипт. И человеку (на сегодняшний момент) приходится для одной партии заказов, сначала вывести часть нарядов в программке, потом зайти на УРЛ, найти там эти же заказы, выбрать именно их (дело в том что сохраняется реестр заказов и кроме текущей партии видно и все предыдущие) и нажать кнопку для генерации отчёта, и только после допечать оставщиеся наряды.
А если запустить вывод на экран из командной строки, то останеться только нажать на печать уже скомпанованного отчёта с нужными заказами.
Много конечно написал, но просто хотелось бы дать понять что ""открытие окна бруозера" это неправильный вариант" - мне не подходит изначально. Концептуальную модель решения задачи я измусолил уже в доль и поперёк, и кроме как "открытие окна бруозера" ничего более простого и элегантного не нашёл. Прошу помочь технически:)
 

antson

Новичок
Партнер клуба
бардак автоматизации не поддается Ш(волосы дыбом)

вариант скрипт принимает в качестве одного из параметров
переменную часть url'a

батник на серваке запускается из батника у клиента

server.bat
--------------------
вызов пхп имя_скрипта?slozhit=%1

client.bat
---------------
setevoi_disk:\shara\server.bat %1
полный_путь_к_ie\iexplore.exe http://sait/postoyannay_chast/%1


из проги вызов
client.bat уникальное_имя
 

Poizzz

Guest
Автор оригинала: antson
бардак автоматизации не поддается Ш(волосы дыбом)
:)
Не буду спорить, скажу лишь что производство весьма "уникальное" и тут свои реалии...

Автор оригинала: antson
батник на серваке запускается из батника у клиента
Повторюсь: ПО находится на сервере и батник запускает сразу на сервере

Автор оригинала: antson

client.bat
---------------
setevoi_disk:\shara\server.bat %1
полный_путь_к_ie\iexplore.exe http://sait/postoyannay_chast/%1

из проги вызов
client.bat уникальное_имя
Из проги возможен только вызов *.bat без каких либо переменных. Переменная часть урла получается только вследствии выполнения скрипта. На этапе запуска батника она ещё не известна

если идти предложеным способом то может выглядеть только следующим образом:

start.bat
-----------------
php.exe script.php //внутри скрипта генерится динамическая часть урла
iexplore.exe http://sait/postoyannay_chast/'dinamika iz scripta'

Тогда вопрос - как вытащить динамику из скрипта?
 

antson

Новичок
Партнер клуба
ну заставь скрипт заодно писать и батник, который может
потом запустить клиент.

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

-~{}~ 27.07.05 19:20:

server.bat
_______________
вызов скрипта, в котором генеришь dinamic.bat
dinamic.bat

-~{}~ 27.07.05 19:22:

dinamic.bat
вызов ие с нужным урлом

-~{}~ 27.07.05 19:29:

разрулить траблы при одновременном вызове скрипта
можно через семафор

server.bat
--------------------
:cikl if file_exist('semafor') goto :cikl
echo "runing" >semafor
// запуск скрипта
call dinamic.bat
del semafor
 

Poizzz

Guest
Всё гениальное просто!

Передача параметров через создание третьго файла, как же я сам не догодался!

Большое спасибо!
 

michelle

Новичок
А может ВСЕ сделать проще !!

Отказаться от PHP в сторону Dlephi или Visual C с тонким клиентом!!!!!!
 
Сверху