2016-11-28 2 views
1

Я вызываю функцию с помощью 'exec' и определяю аргумент как переменную.Как вызвать функцию Python в аргументе переменной PHP, передающей переменную

$jsonrequest = escapeshellarg(json_encode($request, JSON_NUMERIC_CHECK)); 
$solveroutput = exec('sudo python /var/www/website.com/services/run.py $jsonrequest'); 

Я уже пытался назвать так:

$solveroutput = exec("sudo python /var/www/website.com/services/run.py '$jsonrequest'"); 

и

$solveroutput = exec("sudo python /var/www/website.com/services/run.py $jsonrequest"); 

, а также без 'Судо'

Когда я вызвать функцию непосредственно в командной строке на сервере (AWS), я получаю результат, как показано ниже. $jsonrequest выше - это именно то, как я печатаю в командной строке.

[[email protected] ~]$ sudo python /var/www/website.com/services/run.py '{"max_split":4,"order":681,"max_cost_frac":0.1,"items":[{"productid":8745,"qty":1,"estimatedprice":53.6}],"bids":[{"vendorid":1,"minimum_order":0,"items":[{"productid":8745,"qty":1,"estimatedprice":100}]}]}' 

ОТВЕТ:

{"status": "OK", "order": 681, "deliveries": [{"vendorid": 1, "productid": 8745}]} 

Спасибо!

ответ

0

Один из способов использования маршрутизатора приложения, такого как Crossbar.io, и протокола, такого как WAMP (протокол сообщений веб-приложений) и т. Д. Ваша функция Python может быть издателем, а ваша функция PHP может быть подписчиком. Этот метод не рекомендуется для новичков, поскольку для этого требуется справедливый опыт программирования.

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