Вызов программы Python из PHP
У меня есть версия алгоритма A*, который строит график Дорожная и велосипедная сеть Великобритании в списках Python. Это занимает около 30 секунд инициализировать, но после этого можно очень быстро найти кратчайший маршрут между любыми двумя вершинами. Предоставляются идентификаторы начальной и конечной вершин по PHP.
Я пытаюсь найти лучший способ общения между людьми. PHP и программа Python. Я только хочу сделать фазу инициализации когда сервер Apache запускается, поэтому мой вопрос: как мне это сделать? оставь себе программа python жива и запрашивает маршруты из нее через php? У меня есть Установка ГЛАМП.
4 ответа:
Самый простой способ, который я могу придумать, - это 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-приложения.
Проверьте этот вопрос: Вызов Python в PHP
Также проверьте это расширение: http://www.csh.rit.edu/~jon / projects/pip /
Я не знаю, позволяет ли вам хостинг-среда добавлять новые расширения php, но вы поняли идею.
Я бы сделал сервер "backend" из вашего приложения Python. Существует много способов вызова приложения Python:
- бережливость и буферы протокола
- HTTP (CherryPy просто получить проворачивание) с XML или JSON
- XMLRPC в Python
- необработанные сокеты
Это позволяет избежать любого штрафа при запуске приложения Python.
Вы можете сделать что-то столь же простое, как веб-сервер REST в Python, используя web.py:
И затем вызовите это через PHP, должно сделать всю задачу супер простой.
Смотрите это для получения дополнительной информации:
Http://johnpaulett.com/2008/09/20/getting-restful-with-webpy/