php结合python的方法(一)

Posted by

1.php:

Linux环境下,调用函数 shell_exec(),如果我们运行的python文件为同一目录下的test.py,需要输入三个数据:(这里我们定义接收python输出结果的变量为 result)

$result = shell_exec("python3 test.py 1 2 3");  #输入的三个数据分别为 1 2 3


$a = 1;
$b = 2;
$c = abcd;
$result = shell_exec("python3 test.py $a $b $c");

这里我们可以使用表单从用户处获取数据,然后传递给python,

表单的使用方法:

html中表单是<form>标签

表单中的输入标签为<input>

文本域通过 <input type=”text”> 标签来设定,当用户要在表单中键入字母、数字等内容时,就会用到文本域。

密码字段通过标签 <input type=”password”> 来定义

<form action="" method="post">           <!--method="post"代表以post方式传输,post改成get就是以get方式传输-->
请输入a:<input type="number" name="a" value="请输入a">               <!--type="number"代表只能够输入数字,name="a",名字为a,后面我们使用php获取post数据的时候,用的就是这个a-->
<br>
请输入b:<input type="nunber" name="b" value="请输入b">               <!--名字为b,后面我们使用php获取post中这个文本的数据的时候,用的就是这个b-->
<br>
<button type="submit">计算</button>           <!--按钮,点击提交表单-->
<?php
$aa = _POST["a"];              //从表单中获取name为a对应的文本框中的内容
$bb = _POST["b"];
$result = shell_exec("python3 test.py $aa $bb");
echo "a与b的和为:$result";
?>

2.python:

python获取php中的数据,需要使用到sys模块,使用sys.argv[]来传递变量,第一个变量为sys.argv[1],第二个变量为sys.argv[2],第n个变量为sys.argv[n]

python输出的时候正常使用print方式输出,需要注意的一点是,python输出html代码,再用php的echo输出,那么最终在网页端输出的就是html代码,因此我们可以用这种方法来设计网页

import sys
a, b = sys.argv[1], sys.argv[2]
print(int(a)+int(b))