我想从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上许多类似问题的答案,但找不到特定于此场景的答案)
答案 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
。