从PHP脚本调用python脚本

时间:2015-12-10 09:23:58

标签: php python

我在本地运行PHP Web脚本以通过终端使用命令php -S localhost:8000进行测试。

<?php $command = '/usr/bin/python /Users/Jupiter/Desktop/NC/www/createHarbourContainter.py'; exec($command); ?>

我试图调用存在于同一目录中的这个python脚本:

#!/usr/bin/python


import os
import sys

save_path = '/Users/Jupiter/Desktop/NC/harbours/'
name = sys.argv[1]

def newHarbourContainer():
    os.makedirs(save_path + name)


def main():
    newHarbourContainer()

if __name__ == '__main__':
    main()

此python脚本设置了chmod x+

我可以从终端运行python脚本:python createHarbourContainter.py

我无法做的是让PHP函数exec()调用python脚本。需要帮助!

2 个答案:

答案 0 :(得分:0)

在PHP中,你可以使用反引号来执行shell命令,所以试试这个:

<?php 
`/usr/bin/python /Users/Jupiter/Desktop/NC/www/createHarbourContainter.py`
?>

有关详细信息,请参阅http://php.net/manual/en/language.operators.execution.php

答案 1 :(得分:0)

所以我找到了一个解决方案:

$output = shell_exec('python createHarbourContainer.py')

将输出恢复到浏览器中:

echo "<pre>$output</pre>";

我在PHP Development Server中运行服务器。 在index.php所在的目录中使用bash命令:php -S localhost:8000。 服务器正在记录浏览器界面的所有输入和输出。 我意识到从php调用/usr/bin/python时,PHP Development Server会暂停并打开python解释器。

设置我想要执行的python脚本的整个路径不起作用,因为PHP脚本没有权限。

将来如何帮助其他人。