我正在本地运行一个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脚本没有权限。
这将如何在未来帮助其他人。