использование модулей на других языках

  • Автор темы Автор темы doppelganger
  • Дата начала Дата начала

doppelganger

Guest
использование модулей на других языках

Такое дело. Есть вычислительный модуль, реализующий довольно сложную математику. На вход ему подаётся несколько чисел из формы и числовой ряд из базы данных, на выходе получаем ряд других чисел или код ошибки. Существуют реализации этого модуля на Си и Фортране. Переписывать его на php слишком трудоёмко, отсюда вопрос -- можно ли как-то специально его скомпилировать, чтобы можно было организовать взаимодействие между ним и основной программой на php? Сервер -- Apache, есть полный доступ и возможность установки своих программ.
 
можно сделать модуль для РНР, который будет предоставлять интерфейс к этой либе.
 
А как такие вещи делаются? Extensions? Что читать, куда копать?
 
>А как такие вещи делаются?
смотрятся сорцы, документация и делаются.

>Extensions?
да

>Что читать, куда копать?
http://www.zend.com/apidoc/ - начинать лучше здесь.
 
Нашёл модуль, компилированный под такой же linux, попробовал подключить через dl(). Получил

Warning: dl(): Unable to load dynamic library './libimslcmath.so' - Shared object "libc.so.6" not found in ... on line 5

Библиотека такая на сервере, в принципе есть в /usr/lib/. Это для php нужно прописать какие-то пути к библиотекам или php не грузит модули, которым требуются ещё какие-то модули?
 
А для чего такая задача, для asp или .net?
 
Ужасная правда состоит в том, что php/asp это как раз cgi и есть.
 
doppelganger php не обязан работать в среде веб-сервера (в отличие от асп), это самостоятельный скриптовый язык. Да и работа php/asp как модулей это тоже не совсем CGI
griffit ты имел ввиду CLI? (command line interface)


doppelganger если идти как прще всего то вызывать exec() свои внешние standalone проги, как переписать фортран программу в зенд екстеншен я не представляю..
 
Просто странно, что тот же asp спокойно грузит .dll, а php не может взять скомпилированную библиотеку на C.

Дело в том, что мне сейчас не нужно точное решение задачи. Мне надо выяснить, существует ли принципиальная возможность подключения c numerical libraries, распространяемой в скомпилированном под распространённые платформы виде (http://www.vni.com/cgi-bin/cnl5download.html), в php скрипте под linux/apache. И если такая возможность точно существует, то насколько трудоёмка её реализация. Иначе я нормальное предложение подать не смогу. -)
 
>Просто странно, что тот же asp спокойно грузит .dll,
любую-любую?
и даже с функцией format_c() внутри?

>а php не может взять скомпилированную библиотеку на C.
а с чего это вдруг он будет её "брать" ?
есть API, который эта библиотека должна предоставлять PHP.
нет API - это не модуль РНР и подгружен не будет.

>Мне надо выяснить, существует ли принципиальная возможность подключения c
>numerical libraries, распространяемой в скомпилированном под распространённые
>платформы виде
хидеры там есть, чтобы с ней можно было собрать что-то ?

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