一、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