在python和php之间发送和接收数据

时间:2018-04-08 22:28:49

标签: php python

我想从php文件中的表单向python函数发送一个字符串。

接收“字符串参数”的python函数将处理它并将“结果字符串”返回到同一个php文件中并显示它。

请指导我如何操作。

更新 我在Windows8.1和Python3.6.4上使用xampp服务器 我已成功使用shell_exec()将参数从php发送到python但无法将变量从python返回到php。

我的PHP代码:(index.php)

$param1 = "abc";
$param2 = "xyz"
shell_exec("python C:/python/echo.py $param1 $param2");

我的python代码(echo.py)

import sys
x = sys.argv[1]
y = sys.argv[2]
print(x)
print(y)
#here I want to return string
#return "code executed successfully"
# and receive this sentence back in new.php file & display it with proper css

(注意:我已经阅读了StackOverflow上许多类似问题的答案,但找不到特定于此场景的答案)

2 个答案:

答案 0 :(得分:2)

shell_exec 分配给变量( $ resultAsString )似乎是我的解决方案。

PHP:

<?php 

  //your variables that you are assigning
    $param1 = 'one';
    $param2 = "two";
  //This is where you pass the variables into Python 
    $command = escapeshellcmd("/python/echo.py $param1 $param2");
  //assign the execution to a variable
    $resultAsString = shell_exec($command);
    echo $resultAsString;
?>

Python:

import sys
ResultAsString = ''

#some computing as an example
for x in sys.argv:
    if (x == sys.argv[0]):
        continue
    else:    
        ResultAsString += str(x)+" "

#everything you print will be returned to PHP as a single string
print(ResultAsString)

答案 1 :(得分:1)

shell-exec的手册:

  

此函数可在发生错误或程序时返回NULL   没有输出。无法检测执行失败   使用此功能。访问程序时应使用exec()   退出代码是必需的。

exec的手册:

string exec ( string $command [, array &$output [, int &$return_var ]] )
  

return_var
  如果return_var参数与输出参数一起出现,   然后执行命令的返回状态将写入此   变量

试试这个(未经测试的代码,所以测试它):

exec('python C:/python/echo.py',  ['abc', 'xzy'], $return_value);

您正在寻找$return_value