вернее,
очень желательно с помощью PHP.
суть задачи. необходимо с помощью скрипта автоматизировать различные задачи, обычно выполняемые пользователями через браузер.
например, в обычной ситуации пользователь открывает некоторую страницу в браузере, вводит логин/пароль, логинится и выполняет какие-либо действия.
то же самое нужно сделать из PHP-скрипта. нечто вроде:
$browser = new WebBrowser();
$browser->navigate('http://site.com');
$form = $browser->get_form("login");
$form->set("username","login");
$form->set("password","pass");
$form->submit();
$browser->wait();
Так вот ищутся варианты, что может быть объектом WebBrowser. В данный момент он реализован своими силами на PHP, поддерживает куки, парсит DOM, встроенная фабрика создает объекты типа Form, Element и т.п. И все как бы устраивает, за исключением отсутствия поддержки ява-скрипта. Например, сабмит формы может выполняться яваскриптом, повешенным на ссылку. И все, в этом случае мой браузер бессилен. Всякие "подвыподверты" уже надоело прилаживать. Поэтому решено было отказаться от эмуляции браузера и сделать все на основе настоящей полнофункциональной библиотеки.
Нашелся способ подцепиться к Internet Explorer из PHP. Не подходит, нужно под никсы. Да и не то это, визуальная часть не нужна, нужно чтобы все рендерилось "в мозгу".
Есть вариант установить Firefox с расширением, которое открывает доступ к браузеру через телнет. Круто, функционально, но опять же, не хочется тащить визуальную часть, которой потребуется граф. оболочка.
Идеально было бы подцепиться к Gecko через XPCOM (вроде бы это то что нужно), но как из PHP до XPCOMа добраться? Есть решения для всего, кроме PHP. Как вообще из PHP подцепить стороннюю библиотеку, не являющуюся расширением? Вот тут проблема. Хотя там есть какие то средства для взаимодействия с Java-приложениями, может это поможет подцепить библиотеку написанную на яве?
Вобщем, хелп, хелп, хелп. Помогите найти направление в котором дальше двигаться. Насчет того что это задача не для PHP, это я и сам понимаю, но вот так уж прижало. Ну поддерживает же PHP виндовые комы и дотнеты, неужели под никсом нельзя найти никакого способа взаимодействия?