从PHP脚本调用python脚本


Invoking a python script from a PHP script

我正在本地运行一个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脚本。需要帮助!

在PHP中,您可以使用backtick`来执行shell命令,所以请尝试以下操作:

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

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

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

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

并将输出返回到浏览器:

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

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

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

这将如何在未来帮助其他人。