方法一
exec ( string $command [, array &$output [, int &$return_var ]] ) : string
备注:
exec有3个参数,第一个是要执行的命令,第二个是参数是一个数组,数组的值是由第一个命令执行后生成的,第三个参数执行的状态,0表示成功,其他都表示失败。
查看具体信息需要使用 2>&1, 命令就会输出shell执行时的错误到$output变量, 输出该变量即可分析。
//例如:
exec('C:/Users/Administrator/AppData/Local/Programs/Python/Python37/python.exe index.py 2>&1', $output, $return_val);
print_r($output);exit;
$output = exec("C:/Users/Administrator/AppData/Local/Programs/Python/Python37/python.exe index.py");
方法二
$output = shell_exec("C:/Users/Administrator/AppData/Local/Programs/Python/Python37/python.exe index.py"); // 2
print_r($output);exit;
方法三
$output = system("C:/Users/Administrator/AppData/Local/Programs/Python/Python37/python.exe index.py"); // 3
print_r($output);exit;
方法四
$output = passthru("C:/Users/Administrator/AppData/Local/Programs/Python/Python37/python.exe index.py"); // 4
print_r($output);exit;
方法五
$handle = popen("C:/Users/Administrator/AppData/Local/Programs/Python/Python37/python.exe index.py",'r');
$output = fread($handle,4096); // 5
print_r($output);exit;
备注:
1、exec和shell_exec和popen差不多。
2、
system会自动输出结果,所以其实无需打印。
passthru也是会自动输出结果,但不会将变量赋值
直接打印 $ret表示连接状态 $cmd表示结果但直接打印 1表示未连接0表示已连接