【问题标题】:How can i execute a python function(which takes a parameter) from php?我如何从 php 执行 python 函数(它需要一个参数)?
【发布时间】:2016-06-19 12:47:58
【问题描述】:
我有一个 python 脚本,里面有一个 python 函数,函数接受一个参数。现在我想执行python函数。并且参数是从 php.ini 中给出的。
但是python文件在另一个目录中。
例如:php在site/ph目录下,python在site/pyt目录下
请大家帮我从 php 执行 python
感谢您的帮助
【问题讨论】:
标签:
php
python
function
parameters
execute
【解决方案1】:
考虑使用 PHP 的 exec() 将 PHP 参数作为命令行参数传递给 Python。然后让 Python 用它的sys.argv 列表接收它:
PHP 脚本(注意:$output 是一个数组,$return_var 是一个标量,0 或其他):
$arg = "argument 1";
exec('python "/site/pyt/Script.py" "'.$arg.'"', $output, $return_var);
// PYTHON OUTPUT
echo "return value is: $return_var" . "\n";
foreach ($output as $line) {
echo $line."\n";
}
Python 脚本(注意:sys.argv 是一个以脚本文件名作为第一个参数的列表)
import sys
# RECEIVING COMMAND LINE ARG
php_param = sys.argv[1]
def somefunction(p):
print("PHP Paramter: {}".format(p))
somefunction(php_param)
输出 (PHP脚本运行时)
# return value is: 0
# PHP Paramter: argument 1