2010-06-24 2 views
2

У меня есть версия алгоритма A *, которая строит график сети дорог и циклов в сети Python UK. Требуется около 30 секунд для инициализации, но как только это сделать, вы можете быстро найти кратчайший маршрут между любыми двумя вершинами. Идентификаторы начала и конца вершины предоставляются PHP.Вызов программы Python из PHP

Я пытаюсь разработать лучший способ связи между PHP и программой Python. Я только хочу сделать фазу инициализации , когда запускается сервер Apache, поэтому мой вопрос: как сохранить живую программу python и запросить маршруты из нее через php? У меня есть установка GLAMP.

+0

Что делает G означают? –

+0

@Pekka Предположительно GNU/Linux в отличие от Linux, поскольку GNU/Linux является технически правильным названием для ОС с ядром Linux и подсистемами GNU. – rossipedia

+0

@Bryan ааа, приветствия. @Simon - одна впечатляющая система, которую вы там строите! **Вау**. Какие данные вы используете для этого? Будет ли версия для Кельнской области в возможном будущем? :) –

ответ

2

Самый простой способ, которым я могу думать, - это XMLRPC. Python делает это ужасно легко настроить сервер XMLRPC, и есть php_xmlrpc для привязки на стороне PHP ...

def calculate_path(v1, v2): 
    return [v1, ..., v2] 

from SimpleXMLRPCServer import SimpleXMLRPCServer 
server = SimpleXMLRPCServer(('localhost', 9393)) 
server.register_function(calculate_path) 
server.serve_forever() 

и вы работаете и должны быть в состоянии сделать вызов XMLRPC для calculate_path на http://localhost:9393/ из ваше приложение PHP.

+0

Спасибо за все предлагаемые решения, но я пошел на это в конце, поскольку он выглядел самым простым. Тем не менее, мне потребовалось некоторое время, чтобы получить модуль Pear, работающий с PHP5.3, - что я сделал, предопределив функцию dl() {return false;} Теперь мы удалили большую часть пакета XMLRPC, чтобы иметь очень легкая версия. –

0

Я бы сделал сервер «backend» из вашего приложения Python. Есть много способов, чтобы позвонить в приложение Python:

Это позволяет избежать любого штрафа за запуск приложения Python.

0

Вы могли бы сделать что-то же просто, как REST веб-сервера в Python с использованием web.py:

http://webpy.org/

, а затем вызвать, что с помощью PHP, должны сделать все задачи супер просто.

Смотреть это для получения дополнительной информации:

http://johnpaulett.com/2008/09/20/getting-restful-with-webpy/

Смежные вопросы