通过PHP在用户本地机器执行存储在服务器/网络位置的Python脚本
我有一台运行IIS的网络服务器(机器A),它在为我运行PHP。当用户在浏览器中访问一个托管在这个网络服务器上的网页,并且这个网页上有一个PHP脚本时,他们需要填写几个表单,然后点击一个按钮,这样就会运行这个PHP脚本,而这个脚本会调用我已经写好的Python脚本。我在PHP中使用exec()命令来调用存储在网络服务器本地(还是机器A上的)的Python脚本。这里的想法是,任何用户在任何机器上(只要安装了Python)都可以在访问这个网页时运行这个脚本。
不幸的是,Python脚本需要的一个表单是用户机器(机器B)上插入的外部驱动器的路径。
我的问题是:有没有办法让PHP执行一个存储在机器A上的Python脚本,但这个脚本是在机器B上本地运行的?这样,当用户输入驱动器的位置(比如Windows: F:\,Linux: \dev\sda2\, 等等)时,Python脚本就能知道要查看的是用户的本地机器(机器B),而不是存储脚本的服务器(机器A)?
编辑:希望我已经澄清了上面的问法。
2 个回答
0
有没有办法让PHP执行一个存储在机器A上的Python脚本,然后在机器B上本地运行这个脚本?
不可能。浏览器不允许这种安全漏洞的存在。
1
这个问题不是特别清楚,但我理解你的意思是,你想在用户自己电脑上运行代码,而用Python是做不到的。
最好的办法是写一些JavaScript代码来完成这个任务(不过只有少数几个浏览器可以用,因为你要用到HTML5的本地存储),或者让用户自己上传文件。