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

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

doppelganger

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

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

tony2001

TeaM PHPClub
можно сделать модуль для РНР, который будет предоставлять интерфейс к этой либе.
 

doppelganger

Guest
А как такие вещи делаются? Extensions? Что читать, куда копать?
 

tony2001

TeaM PHPClub
>А как такие вещи делаются?
смотрятся сорцы, документация и делаются.

>Extensions?
да

>Что читать, куда копать?
http://www.zend.com/apidoc/ - начинать лучше здесь.
 

doppelganger

Guest
Нашёл модуль, компилированный под такой же 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 не грузит модули, которым требуются ещё какие-то модули?
 

doppelganger

Guest
А для чего такая задача, для asp или .net?
 

doppelganger

Guest
Ужасная правда состоит в том, что php/asp это как раз cgi и есть.
 

Yurik

/dev/null
doppelganger php не обязан работать в среде веб-сервера (в отличие от асп), это самостоятельный скриптовый язык. Да и работа php/asp как модулей это тоже не совсем CGI
griffit ты имел ввиду CLI? (command line interface)


doppelganger если идти как прще всего то вызывать exec() свои внешние standalone проги, как переписать фортран программу в зенд екстеншен я не представляю..
 

doppelganger

Guest
Просто странно, что тот же asp спокойно грузит .dll, а php не может взять скомпилированную библиотеку на C.

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

tony2001

TeaM PHPClub
>Просто странно, что тот же asp спокойно грузит .dll,
любую-любую?
и даже с функцией format_c() внутри?

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

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

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