Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Допустим ли запуск .exe файлов через РНР


Автор: ТРЕТЬ 24.11.2006, 02:26
На самом деле, задача стоит такая - есть файл Microsoft Access (*.mdb). Надо его содержимое перегнать в MySQL...

Честно утюжил поисковики в течении 4 часов, да только не нашел библиотеки для РНР, которая бы дала возможность нормально считывать этот файл...
Тем не менее, нарвался на интересную утилитку - http://www.rsdn.ru/article/files/progs/BatchAccess.xml 
В чем её смысл? А в том, что её можно вызвать вот таким образом
Код

BatchAccess -r SuperPuper.mdb structure.sql

и получить из фалика .mdb что-то вроде 
Код

CREATE TABLE [Телефоны] (
    [АдресЭлектроннойПочты] Text(50),
    [ДомашнийТелефон]       Text(30),
    [Имя]                   Text(50),
    [Код_Телефоны]          AutoIncrement,
    [РабочийТелефон]        Text(30),
    [СотовыйТелефон]        Text(30),
    [Фамилия]               Text(50),
    CONSTRAINT PrimaryKey PRIMARY KEY ([Код_Телефоны])
);

в файле structure.sql... Первый же взгляд на файл делает ясным, что из этого уже лепить таблицу в MySQL можно с большой легкостью...

Только вот есть одна загвоздка... Точнее две... Хотя, нет, три... По порядку...
1) Может ли РНР запустить какой-либо ярлык с параметрами?
(уверен, что может, но абсолютно не в курсе как это делается...)
2) Разрешают ли хостинговые компании, чтобы на их хосте РНР скрипты запускали какие-либо приложения?
(ну совсем не ориентируюсь в вопросе)
3)А вообще, выполнится ли это приложение на *NIX сервере? 
(вот описачка от разрабов)
Код

Требования
.NET Framework 1.1
MDAC
Microsoft Jet Driver 4.0
ПРИМЕЧАНИЕ
Устанавливать MS Access НЕ ТРЕБУЕТСЯ!

(Впринципе, если это вообще возможно, то можно будет попросить хостеров установить какие-либо компоненты... Но если это невозможно вообще на *NIX сервере, то придется что-то еще думать)



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

Автор: cnill 24.11.2006, 04:22
Приложение не запустится под nix, и вообще неудачное решение.
ps: "Ярлык с параметрами" это что-то интересное:-)

Автор: BossIT 24.11.2006, 05:45
Цитата

1) Может ли РНР запустить какой-либо ярлык с параметрами?


 smile  smile  smile 

Цитата

2) Разрешают ли хостинговые компании, чтобы на их хосте РНР скрипты запускали какие-либо приложения?
(ну совсем не ориентируюсь в вопросе)

Нет, иначе это отобразиться на безопастности.
 Но по теме твоего вопроса: 
http://www.labnit.ru/forum/index.php?id_forum=1&id_theme=20
Цитата

3)А вообще, выполнится ли это приложение на *NIX сервере? 


Вряд ли

Автор: maykoff 24.11.2006, 10:01
запускаться бинарь из php может
компании обычно этого не разрешают, но если это нужно - можно попробовать договориться, доказав им необходимость и безопасность (мы иногда запускаем) , и дав денег, разумеется (не бесплатный хостинг!)
по поводу возможности использования .NET на никсах - простите, не слыхал (и не один я), так что эту затею лучше оставить smile
вариант - проделать всё это на виндовой тачке, перегнав базу в какой-нибудь вид, который вы сможете после прочесть, xml, txt , да мало ли... может, просто дамп сделать с базы, и прочесть его в мускль, возможно, минимально подправив...

Автор: ТРЕТЬ 24.11.2006, 11:33
Цитата(cnill @ 24.11.2006,  04:22)
ps: "Ярлык с параметрами" это что-то интересное:-)

 smile Сейчас сам смотрю, и смешно становится... Просто писал мессагу уже в состоянии помутнения сознания...



Автор: ТРЕТЬ 24.11.2006, 12:05
Но все-таки, по поводу решения проблеммы... Тут ведь дело в том, что задача не в том, чтобы один раз перекатать себе какую-то базу, а сделать так, чтобы на сайт можно было закачать .mdb файл, и его содержимое отправилось в MySQL...
Впринципе, сейчас сижу и думаю сделать так - пусть они прогоняют сами .mdb файл через BatchAccess, и отправляют на сервер уже .sql файлы... А там они будут обрабатываться нужным образом - так что превратятся в чистые файлы дампа MySQL, из которых уже можно и "востановить" базу...

Тут вот еще вопрос возник... А вообще, может ли РНР работать с .mdb файлами? (Всмысле без использования дополнительных программ) smile 
Просто сейчас подумал: "я искал в гугле в течении 6 часов, но все, что нашлось связанного с .mdb представляло из себя не набор скриптов РНР и библиотек к ним, но вполне завершенные программы, которые разрабы пытаются продать за 50-1000 уе в зависимости от функциональности и реализации"... Интересное еще предложение попалось - вот, мол, скрипт, платите и пользуйтесь. Первое время не понял в чем прикол - вот лежит полный текст скрипта, инклуды все к нему тоже есть, с чего еще платить? Оказалось просто что скрипт высылает файлики офиса на сервер компании, а оттуда уже возращаются файлы, куда более подходящие для работы с ними в РНР...

Наговорил конечно... Прорвало... Короче, что вы думаете, можно ли в РНР работать с .mdb как с файлом?

Автор: nzeemin 24.11.2006, 14:22
Даже если бы BatchAccess мог работать под *NIX (это, в принципе, возможно - нужно взять его исходники, они доступны, они на C#, можно скомпилировать и отладить под mono), это ничем не поможет.
Для работы с .MDB нужен Microsoft Jet Driver 4.0, который есть только под Windows. Если под *NIX нет сторонних библиотек, работающих с .MDB, то значит, под *NIX с этим форматом невозможно работать вовсе.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)