一、python代码文件
python的文件名为:has.py
import sys
param_cont = sys.argv # PHP传递过来的参数,以列表的形式
param_num = len(sys.argv) # PHP传递过来的参数总数量
filename = sys.argv[0] # 该python文件的文件名
v1 = sys.argv[1] # php传过来的第一个参数
v2 = sys.argv[2] # php传过来的第二个参数
v3 = sys.argv[3] # php传过来的第三个参数
res = {
'文件名':filename,
'第一个参数':v1,
'第二个参数':v2,
'第三个参数':v3,
'参数':param_cont,
'参数数量':param_num
}
print(res) # 这里将输出到PHP文件中的$Array里面去
二、PHP正确执行的代码
$var = 6;
$var1 = 12;
$var2 = 24;
//exec函数第一个参数是执行的命令,第二个参数是执行的结果,第三个参数是执行的状态。
$res = exec("D:\python\python C:\phpStudy\WWW\\need\has.py $var $var1 $var2", $Array, $ret);
echo '<pre>';
print_r($res);//返回的json字符串
print_r($Array);//返回的是一个数组
print_r($ret);//返回int类型的状态码;其中0表示成功,1表示失败
/*输出结果
{'文件名': 'C:\\phpStudy\\WWW\\need\\has.py', '第一个参数': '6', '第二个参数': '12', '第三个参数': '24', '参数': ['C:\\phpStudy\\WWW\\need\\has.py', '6', '12', '24'], '参数数量': 4}
Array
(
[0] => {'文件名': 'C:\\phpStudy\\WWW\\need\\has.py', '第一个参数': '6', '第二个参数': '12', '第三个参数': '24', '参数': ['C:\\phpStudy\\WWW\\need\\has.py', '6', '12', '24'], '参数数量': 4}
)
0
*/
三、PHP错误执行的代码
获取错误信息
$var = 6;
$var1 = 12;
$var2 = 24;
$res = exec("D:\python\pyuthon C:\phpStudy\WWW\\need\has.py 2>&1 $var $var1 $var2", $Array, $ret);
echo '<pre>';
var_dump($res);//返回的json字符串
print_r($Array);//返回的是一个数组
print_r($ret);//返回int类型的状态码;其中0表示成功,1表示失败
//将python写成pyuthon,会提示找不到该命令的信息
/*执行结果
string(14) "或批处理文件。"
Array
(
[0] => 'D:\python\pyethon' 不是内部或外部命令,也不是可运行的程序
[1] => 或批处理文件。
)
1