检查PHP的exec函数是否执行成功
发布时间:2022-07-29 11:25:27 所属栏目:PHP教程 来源:互联网
导读:做一个代码发布的系统,需要用到PHP的exec函数来执行Linux下的命令和git,svn命令,如何判断PHP的exec函数是否执行成功呢? 写个PHP文件来做实验: exec函数解析 exec语法: string exec(string command, string [array], int [return_var]); exec返回值: 字
做一个代码发布的系统,需要用到PHP的exec函数来执行Linux下的命令和git,svn命令,如何判断PHP的exec函数是否执行成功呢? 写个PHP文件来做实验: exec函数解析 exec语法: string exec(string command, string [array], int [return_var]); exec返回值: 字符串 Exec参数说明 Command – 需要执行的命令 Array – 是输出值 return_var –是返回值0或1,如果返回0则执行成功,返回1则执行失败。 exec函数第一个参数是执行的命令,第二个参数是执行的结果,第三个参数是执行的状态。 exec('ls', $log, $status); print_r($log); print_r($status); echo PHP_EOL; 执行这个php文件: vagrant@homestead:~$ sudo vim aa.php vagrant@homestead:~$ php aa.php Array ( [0] => aa.php [1] => tanteng.me [2] => test.sh ) 0 检查PHP的exec函数是否执行成功 这里$log,$status输出结果如图。 但是$status为0,给人的感觉是执行失败,其实不是,这是exec执行成功。 改一下这个php文件,给exec第一个参数一个错误的命令。 如:exec(‘lsaa’,$log,$status). 再次执行,运行结果如图: vagrant@homestead:~$ sudo vim aa.php vagrant@homestead:~$ php aa.php Array ( ) 127 检查PHP的exec函数是否执行成功 这里$status确是有值的。 那么证明$status为0的时候表示exec执行是成功的。这里PHP官方手册上并没有明确说明。 最终这个执行命令的方法如下: PHP exec执行命令PHP public function runLocalCommand($command) { $command = trim($command); $status = 1; $log = ''; exec($command . ' 2>&1', $log, $status); // 执行过的命令 $this->command = $command; // 执行的状态 phpfensi.com $this->status = !$status; return $this->status; } 去除了日志记录和其他的判断。 注意这里: $this->status = !$status; 返回状态的时候取相反的值! (编辑:安阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |