教程集 www.jiaochengji.com
教程集 >  脚本编程  >  php  >  正文 检查PHP的exec函数是否执行成功

检查PHP的exec函数是否执行成功

发布时间:2016-09-30   编辑:jiaochengji.com
教程集为您提供检查PHP的exec函数是否执行成功等资源,欢迎您收藏本站,我们将为您提供最新的检查PHP的exec函数是否执行成功资源
exec函数可以运行一些系统命令了,当然许多的主机已经禁止了exec函数运行了,那么我们要如何检查到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函数第一个参数是执行的命令,第二个参数是执行的结果,第三个参数是执行的状态。


<?php
 
exec('ls', $log, $status);
 
print_r($log);
 
print_r($status);
 
echo PHP_EOL;

执行这个php文件:

 

<center></center>

这里$log,$status输出结果如图。

但是$status为0,给人的感觉是执行失败,其实不是,这是exec执行成功。

改一下这个php文件,给exec第一个参数一个错误的命令。

如:exec(‘lsaa’,$log,$status).

再次执行,运行结果如图:

 

<center></center>

这里$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;
    // 执行的状态
    $this->status = !$status;
    return $this->status;
}
去除了日志记录和其他的判断。

注意这里:

$this->status = !$status;
返回状态的时候取相反的值!

您可能感兴趣的文章:
检查PHP的exec函数是否执行成功
PHP执行cmd命令的方法
php不支持执行cmd命令行
php开启safe_mode模式对函数的影响总结
PHP执行Linux命令的两个有用的函数exec和shell_exec
Python中eval与exec的使用及区别
linux查看PHP进程是否在执行的实例代码
十天学会php之第六天
php exec执行不了
PHP 中执行系统外部命令

[关闭]
~ ~