Вызов функции в другом языке

Я пишу программу на php, которая делает почти все, что ей нужно, но в какой-то момент мне нужно использовать функцию, написанную на python с использованием библиотеки mechanize, оба этих скрипта будут размещены на одном сервере.

Мои первые мысли, чтобы сделать CURL вызовите все аргументы из скрипта php в скрипт python, а затем верните результаты функции обратно в скрипт php, используя CURL,

Я довольно новичок в программировании и не уверен в лучших соглашениях, когда делаю что-то подобное, это мой рабочий процесс с использованием CURL обычным способом это будет сделано или есть другой способ?

3 ответа

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


Но если скрипт Python всегда будет запускаться локально, обычно проще просто запустить его как программу - передать ему аргументы командной строки и / или стандартный ввод и получить его стандартный вывод. У PHP есть несколько разных способов сделать это:system, popen, exec, passthru- у всех есть разные достоинства и недостатки.

Например, с execзвоните escapeshellarg для каждого аргумента соедините их в строку, разделенную пробелами, с указанием пути к сценарию, вызовите execи вы получите результат обратно.

Вы всегда можете использовать exec функционировать в php ( http://php.net/function.exec), если скрипт находится на том же сервере.

Но, пожалуйста, убедитесь, что вы знаете, что делаете, потому что функция мощная и может быть довольно неприятной, если ее использовать неправильно.

Я не знаю, насколько это хорошо (я не пробовал лично), но вы всегда можете попробовать это:

Другие вопросы по тегам