php и Delphi
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
Скажите как правильно использовать php из Delphi?
Интерфейс проги сделан через TWEBBrowser/
Имеются зачатки Сервера - конектятся через IE сотрудники, заполняют формы.
Хотелось бы теперь интерфейс зашаблонить. и сделать на PHP, а больше всего нужен php, для формирования отчётов, что-бы когда новый вид отчёта понадобится не трогать прогу, а просто добавить новый шаблон, который выщит нужные сведения по MySQL, и представит инфу в HTML Формате.
Интерфейс проги сделан через TWEBBrowser/
Имеются зачатки Сервера - конектятся через IE сотрудники, заполняют формы.
Хотелось бы теперь интерфейс зашаблонить. и сделать на PHP, а больше всего нужен php, для формирования отчётов, что-бы когда новый вид отчёта понадобится не трогать прогу, а просто добавить новый шаблон, который выщит нужные сведения по MySQL, и представит инфу в HTML Формате.
Link, что-то вопрос не очень понятен. Ты делаешь собственный web-сервер и хочешь, чтобы он запускал php?
Как CGI приложение его запустить несложно: php.exe filename.php.
Как CGI приложение его запустить несложно: php.exe filename.php.
Даже самый дурацкий замысел можно воплотить мастерски
В смысле у меня не WEB веб сервер, а просто программа, просто интерфейс HTML (ну нравится мне так и всё тут).... Пока я писал прогу успел освоить PHP, и MySQL (ну не совсем до конца).
В проге у меня уже использовалось что-то вроде шаблонов, тока в самопридуманном, и самостоятельно интерпретируемом формате (я добавил возможность вставлять части других файлов(что-то типа макросов с параметрами), вызывать из HTML функции моих форм, которые и выполняли работу и ещё пару фишек), но хотелось бы сделать это более распространёнными и отлаженными способами, и заодно закрепить знания.
То-Есть Покажите плиз, как при наличии php ПРАВИЛЬНО им пользоваться, из форм дельфи, и с его помощью интерпретировать php шаблоны.
То-есть ЗАБУДЬТЕ о сервере. программа должна запустить PHP для своих шаблонов, и сама получать результаты.
Я ХОЧУ узнать, как ПРАВИЛЬНО запустить php для обработки файла, и получить результат. Должен ли я запускать PHP.exe и если да, то с какими параметрами, или может можно подгрузить какую-нибудь DLL из PHP и в ней содержатся нужные функции.
В проге у меня уже использовалось что-то вроде шаблонов, тока в самопридуманном, и самостоятельно интерпретируемом формате (я добавил возможность вставлять части других файлов(что-то типа макросов с параметрами), вызывать из HTML функции моих форм, которые и выполняли работу и ещё пару фишек), но хотелось бы сделать это более распространёнными и отлаженными способами, и заодно закрепить знания.
То-Есть Покажите плиз, как при наличии php ПРАВИЛЬНО им пользоваться, из форм дельфи, и с его помощью интерпретировать php шаблоны.
То-есть ЗАБУДЬТЕ о сервере. программа должна запустить PHP для своих шаблонов, и сама получать результаты.
Я ХОЧУ узнать, как ПРАВИЛЬНО запустить php для обработки файла, и получить результат. Должен ли я запускать PHP.exe и если да, то с какими параметрами, или может можно подгрузить какую-нибудь DLL из PHP и в ней содержатся нужные функции.
Link, я ж тебе написал. Запусти в командной строке php.exe с одним параметром - имя скрипта. Результат выводятся в stdout. Точно так же работает и perl, впрочем как и любая другая CGI-прилада. Вызвать можно при помощи CreateProcess.
Даже самый дурацкий замысел можно воплотить мастерски
Дело в том, что нет файла со скриптом. PHP скрипт формируется программой на лету, и было-бы очень плохо каждый раз сохранять его в файл. Также помойму арсточительно для каждого мелкого скрипта заново запускать экзешник. нельзя ли его один раз загрузить php.exe, и по мере надобности потоками передавать ему скрипты.
Link, по-моему тебе не остаётся ничего иного, как брать исходники на http://www.php.net/ и смотреть что там да как.
Наверняка предусмотрен какой-никакой механизм написания плагинов для PHP...
З.Ы: а вообще-то ты писал про то
Наверняка предусмотрен какой-никакой механизм написания плагинов для PHP...
З.Ы: а вообще-то ты писал про то
как ПРАВИЛЬНО запустить php для обработки файла
Даже самый дурацкий замысел можно воплотить мастерски
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Вот то-то и оно, что если Вы хотите сделать правильный WEB-интерфейс, то Вам нужно либоВ смысле у меня не WEB веб сервер, а просто программа, просто интерфейс HTML (ну нравится мне так и всё тут).... Пока я писал прогу успел освоить PHP, и MySQL (ну не совсем до конца).
а) взять какой-нибудь готовый WEB-сервер. (Я как-то пользовал уникальную вешь WEB+POP+SMTP+FTP+PROXY, весит что-то типа 100Kb и стоит что-то около 100руб. Поищу, ссылку закину) И вот на нем ваш сервер приложений реализовать как CGI-приложение. Тогда HTML-файл не надо сохранять, а выводить в стандартный поток, т.е. Writeln. (Читайте подробнее про CGI)
или
б) Написать свой WEB-сервер. Пусть он обрабатывает только команды GET и POST, т.е. будет сильно урезанный, НО к нему напрямую будет подключаться IE и получать контент.
Только в этих двух случаях не требуется сохранять файл на диск.
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
НашелПоищу, ссылку закину
http://home.lanck.net/mf/srv/
Только там уже было много доработок, и цена уже 300р

- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Про это ответил вышеДело в том, что нет файла со скриптом. PHP скрипт формируется программой на лету, и было-бы очень плохо каждый раз сохранять его в файл.
Используй CreateProcess с перенаправлением потоков.Также помойму арсточительно для каждого мелкого скрипта заново запускать экзешник. нельзя ли его один раз загрузить php.exe, и по мере надобности потоками передавать ему скрипты.
Многократно в различных форумах по Delphi обсуждалось (и есть примеры исходников) как запустить процесс и перехватывать потоки ввода-вывода.
Если perl.exe умеет висеть не выгружаясь (до тех пор пока ему в стандартный поток ввода не попадел символ ^Z (конец файла)), то можно, наверное и один раз запусить.... Но тут Вас ждет море других проблем: Нужна ли многопоточность? Успеет ли Ваше приложение обслужить всех клитентов....
Я бы не стал изобретать велосипед, а просто сделал бы CGI-шку. Причем для кросс-платформенности хорошо бы просто несколько (для Win32/Solaris/...) маленьких CGI-шлюзов, которые обращались бы по TCP/IP к Вашему приложению. А уж WEB-сервер сам будет запускать perl.exe столько раз сколько надо и уж наверняка те кто пишут WEB-серверы этот вопрос очень хорошо проработали...
Кстати, CGI-шлюз на WEB-сервере это очень хорошее решение, имеющее в последствии большие перспективы: Например CGI-шлюз можно научить обращаться не к одному Вашему серверу приложений, а к нескольким для распределения нагрузки и/или резервирования...
Смотрите в будущее!
