我如何从 php 执行 python 函数(它需要一个参数)?

Posted

技术标签:

【中文标题】我如何从 php 执行 python 函数(它需要一个参数)?【英文标题】:How can i execute a python function(which takes a parameter) from php? 【发布时间】:2016-06-19 12:47:58 【问题描述】:

我有一个 python 脚本,里面有一个 python 函数,函数接受一个参数。现在我想执行python函数。并且参数是从 php.ini 中给出的。 但是python文件在另一个目录中。

例如:php在site/ph目录下,python在site/pyt目录下

请大家帮我从 php 执行 python 感谢您的帮助

【问题讨论】:

它们之间可以使用socket通信。阅读此***.com/questions/5965655/… 【参考方案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

【讨论】:

以上是关于我如何从 php 执行 python 函数(它需要一个参数)?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Ajax 函数从 php 服务器获取会话变量? (PHP HTML JS Ajax)

PHP - 停止调用函数的执行[关闭]

从 PHP 站点执行 python 脚本——我需要 Django 吗?可以在树莓派上完成吗? [关闭]

Twisted Python IRC bot - 如何异步执行函数以便它不会阻塞机器人?

从 php 执行的 python 脚本给出错误

如何从外部PHP文件运行Drupal 8函数