我正在使用' exec'并将参数定义为变量。
$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");
也没有' sudo'
当我直接在服务器(AWS)的命令行中调用该函数时,我收到结果,如下所示。上面的$jsonrequest
正是我在命令行中输入的方式。
[lsenna@ip ~]$ 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 :(得分:0)
使用Crossbar.io等应用程序路由器和WAMP(Web Apps Messaging Protocol)等协议的方法之一。您的Python函数可以是发布者,PHP函数可以是订阅者。不建议初学者使用此方法,因为它需要相当多的编程经验。