PHP在带有参数参数的服务器上运行可执

时间:2012-08-10 20:50:26

标签: php windows python-2.7

我这里有点乱。

Windows Server 2008 R1 + IIS6 + PHP5.3.10

我有一个PHP脚本,它连接到一个小的本地mssql数据库,执行搜索并将结果放入变量中。数据库中有6列,但只有4列值得传递。

我在这台服务器上有一个控制台python程序(2.7味道)。它需要4个参数(目标电子邮件地址,主题,正文和密钥(密钥是64个字母字符串)。然后,这个python程序将所有这些放入HTML模板(在程序本身中定义)并通过电子邮件发送给目标

好的 - 这些都可以单独使用!现在有趣的部分。我能让PHP启动这个python程序,它与php脚本位于同一个目录中并传递四个参数/参数吗?参数/参数可以包含空格。

2 个答案:

答案 0 :(得分:1)

您正在寻找Exec。它将在控制台上运行命令并返回最后一行输出。如果你想要所有的输出,可选的第二个参数会给你。

正如埃尔蒂所说,消毒你的投入。永远不要将用户提供的数据直接传递给命令行。

答案 1 :(得分:1)

您可能希望使用exec()shell_exec()来运行您的python脚本。同时使用escapeshellarg()escapeshellcmd()来清理您的输入。这可能如下所示:

$escaped_cmd = escapeshellcmd('nameofexecutable.exe para1 para2 para3');
exec($escaped_cmd);

当然,您需要适当的权限才能运行可执行文件。