我的默认Web应用程序基于PHP。但是,为了方便起见,我构建了一个可以进行分析的python脚本。现在我需要php来调用python代码并检索python代码提供的输出。两个文件都在同一个服务器中,但不在同一个文件夹中。我目前的做法,这是不行的,看起来如下:使用shell_exec从PHP中调用Python
$cmd = "/usr/bin/python /var/www/include/sCrape.py -u '$my_url' ";
$response = shell_exec($cmd);
$response = json_decode($response, true);
现在,当我尝试打印出$回应,我得到空的对象(它应该返回一个数组,字符串,我应该通过json_decode解码) 。我在做这个功能有问题吗?该php位于/ var/www/html /中。下面的代码工作时,两个文件都在同一个目录下:
$cmd = "python sCrape.py -u '$my_url'";
$response = shell_exec($cmd);
$response = json_decode($response, true);
更多信息:my_url输入从PHP中的消毒$ _ POST变量,但现在我已经尝试完全禁用消毒,以测试它是否会工作,但它仍然没有(仍然,直到它到达函数的url路径更长,因为它必须通过form-post传递,而在我的相同文件夹测试用例中,我只声明了$ my_url) 。 -u后缀表示脚本输入一个url。
非常感谢您提前!
非常感谢您的广泛答案!然而,不幸的是,这并没有解决我的问题:/你能想到的其他任何东西?这可能是后期消毒破坏了网址? – DaveTheAl
添加了“2>&1”的'$ response'的值是多少?我认为这是一个许可问题。 – Liblor
老兄,请给自己一个拥抱...... shell_exec中的2>&1运行良好,我终于可以调试我的代码了......非常感谢! – DaveTheAl