PHP в C / C ++ через CGI скрипт - PullRequest
       25

PHP в C / C ++ через CGI скрипт

3 голосов
/ 06 апреля 2010

Я понимаю, что это, вероятно, что-то странное, но вот что у меня есть.

У меня есть приложение (механизм распознавания рукописного ввода), написанное на C / C ++. Это приложение имеет оболочку Perl, которая была сделана авторами приложения, используя SWIG . Мой сайт написан на PHP, поэтому я ищу способы заставить PHP работать с C / C ++ приложением.

Единственный способ, о котором я могу думать сейчас, - это создать CGI-скрипт (Perl-скрипт), который принимает POST-запрос от моего веб-сайта (AJAX-запрос), отправляет его в механизм распознавания через обертку Perl, получает необходимые данные и возвращает необходимые данные в ответ на запрос AJAX.

Как вы думаете, это можно сделать таким образом? Есть ли лучшие решения?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 06 апреля 2010

Что вы предлагаете:

web client <-> Perl CGI script <-> Perl wrapper <-> C program

В этом подходе нет ничего особенно плохого, хотя это явно не самый эффективный способ сделать это. Насколько важна производительность? Если он не должен быть удивительно быстрым, обязательно сделайте это так, что кажется, что его легче всего разрабатывать.

Если вы хотите пойти еще дальше, то очевидная точка оптимизации на приведенной выше схеме - свертывание двух слоев Perl:

web client <-> Perl CGI script <-> C program

Вопрос в том, стоит ли это вашего времени? Вы можете посмотреть на источник для оболочки Perl и решить для себя.

Мой совет - сначала разработать его простым способом, а затем, если по какой-либо причине вы решите, что этого недостаточно, объединить два сценария Perl в один. Но пока не беспокойтесь об этом и продолжайте свою идею.

2 голосов
/ 06 апреля 2010

Как вы думаете, это можно сделать таким образом?

Да, нет причин, по которым это невозможно.

Есть ли лучшие решения?

Может быть. Если вы намереваетесь выполнить оболочку perl как системный вызов отдельного сценария Perl, вам не нужен отдельный сценарий CGI perl. Вы можете просто делать системные вызовы из PHP прямо на вашем сайте. Не большая разница, но может помочь, если PHP больше подходит для работы в Интернете, чем Perl CGI

OTOH, если оболочка Perl-сценария представляет собой довольно очевидный и простой набор вызовов API, и вы чувствуете себя комфортно с Perl CGI, лучшим решением будет перенести этот сценарий Perl командной строки в сценарий Perl CGI, который использует API для внутреннего использования. , в обход системных вызовов.

В случае больших объёмов удаление системных вызовов является преимуществом с точки зрения производительности Big Win, а также позволяет значительно улучшить и упростить обработку ошибок.

...