1 php 端在使用 exec 调用 python外部程序时,必须使用
$set_charset = ‘export LANG=en_US.UTF-8;’ 加在调用的命令前面。否则报错 或 返回结果与终端执行python返回不一致 示例如下:
(1) Linux版本
$cmd = "python test.py {$djdm}";
$set_charset = 'export LANG=en_US.UTF-8;';
exec($set_charset.$cmd,$res_data,$res_state);
(2) Window版本 不能使用 $set_charset = ‘export LANG=en_US.UTF-8;’ 加在调用的命令前面.
$cmd = "python ".PLUG_IN_DJBREAKS." {$djdm}";
exec($cmd,$res_data,$res_state)
php
执行命令
function test1(Request $request){
header("content-type:text/html;charset=utf-8");
$param = $request->param('');
// $inputs = array(
// 'video_title' => "斗罗大陆",
// 'video_type' => '1',
// 'video_ji' => '1',
// );
if($param['plat'] == 1){
$cmd = "python3 ".getcwd()."/python/tx_linux.py".' '.$param['name'].' '.$param['Type'].' '.$param['ji']; # 携带参数
}else if($param['plat'] == 2){
$cmd = "python3 ".getcwd()."/python/aqy_linux.py".' '.$param['name'].' '.$param['Type'].' '.$param['ji']; # 携带参数
}
// $data = shell_exec( $set_charset.$cmd, $output, $res );
// $data = passthru($cmd);//等同于命令`python python.py 参数`,并接收打印出来的信息
// $data = shell_exec("$cmd 2>&1"); // 这样执行,打印报错信息
// $data = shell_exec($cmd);
$set_charset = 'export LANG=en_US.UTF-8;'; // 必要,否则报错 linux
$data = shell_exec($set_charset.$cmd);
$qian = array(" "," ","t","n","r");
$data = str_replace($qian, '', $data);
// var_dump($cmd);
// var_dump($data);
if($data){
return json(['code'=>200,'data'=>$data]);
}else{
return json(['code'=>403]);
}
}
python
接收参数
import sys name = sys.argv[1] #接收参数
·· 返回数据
# json_str =json.dumps(last_host); #返回给php # print(json_str);



