为什么不是';尝试调用Python函数时,我的PHP exec()是否正常工作?
我正在编写一个使用HTML显示表单的web应用程序。然后用户完成表单,并在提交表单时将表单发送到PHP。在PHP文件中,我将其设置为对将返回数据的Python文件调用和exec()命令。但由于某种原因,我没有得到任何回报。当我在终端中执行命令时,它工作得很好,但我们在web浏览器中没有运行响应 HTML: Python:为什么不是';尝试调用Python函数时,我的PHP exec()是否正常工作?,php,python,html,command,exec,Php,Python,Html,Command,Exec,我正在编写一个使用HTML显示表单的web应用程序。然后用户完成表单,并在提交表单时将表单发送到PHP。在PHP文件中,我将其设置为对将返回数据的Python文件调用和exec()命令。但由于某种原因,我没有得到任何回报。当我在终端中执行命令时,它工作得很好,但我们在web浏览器中没有运行响应 HTML: Python: import sys def main(): firstName = sys.argv[1] lastName = sys.argv[2] outp
import sys
def main():
firstName = sys.argv[1]
lastName = sys.argv[2]
output = ""
output += "<html>\n"
output += " <head><title></title></head>\n"
output += " <body>\n"
output += " <p>Hi " + firstName + " " + lastName + "</p>\n"
output += " </body>\n"
output += "</html>\n"
print output
if __name__ == '__main__': main()
导入系统
def main():
firstName=sys.argv[1]
lastName=sys.argv[2]
output=“”
输出+=“\n”
输出+=“\n”
输出+=“\n”
输出+=“Hi”+firstName+“+lastName+”\n
输出+=“\n”
输出+=“\n”
打印输出
如果uuuu name_uuuuuu=='uuuuuu main:main()
请就可能出现的问题给我一些建议。我是Python新手,但这正是老板想要的。。。所以我要让它工作。谢谢 根据这一点,您以错误的方式使用了passthrough。它用于二进制数据
当
Unix命令的输出是需要传递的二进制数据
直接返回浏览器
试试Exec()
希望我能帮上忙。确保你没有被人拦住 确保你能逃避你的论点。尝试:
$response = shell_exec("/opt/http/PythonWeb/web/python pythonName.py " . escapeshellarg($firstName) . " " . escapeshellarg($lastName));
echo $response;
如果问题仍然存在,您可以通过将以下内容放在PHP脚本的顶部,确保启用了错误报告来进一步调查:
ini_set('display_errors', 1);
error_reporting(E_ALL);
我不知道为什么它不起作用,但你应该使用,而且可能 这些将保护您不受任何不可靠的用户输入的影响,并且它们通常有助于确保exec实际正常工作
另外,将要传递给“Exec”的字符串放入一个变量中,并回显该变量,然后将确切的输出剪切并粘贴到shell中,这通常有助于找出问题所在。我觉得将PHP和Python混合使用有点傻。我建议您要么用Python编写应用程序,要么用PHP编写应用程序,但不能两者都用。您确定您的服务器允许
passthru
?如果是这样,当您使用一个更常见的内置命令进行尝试时会发生什么?你得到输出了吗?还可以尝试放置错误报告(-1)代码>嘿。。。谢谢你的建议。然而,我试过了,它仍然没有反应。
$response = shell_exec("/opt/http/PythonWeb/web/python pythonName.py " . escapeshellarg($firstName) . " " . escapeshellarg($lastName));
echo $response;
ini_set('display_errors', 1);
error_reporting(E_ALL);