PHP中如何判断exec函数执行成功?


Posted in PHP onAugust 04, 2016

前言

做一个代码发布的系统,需要用到PHP的exec函数来执行Linux下的命令和git,svn命令,如何判断PHP的exec函数是否执行成功呢?

解决方案

写个PHP文件来做实验:

exec函数第一个参数是执行的命令,第二个参数是执行的结果,第三个参数是执行的状态。

<?php

exec('ls', $log, $status);

print_r($log);

print_r($status);

echo PHP_EOL;

执行这个php文件:

PHP中如何判断exec函数执行成功?

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

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

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

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

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

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;
  // 执行的状态
  $this->status = !$status;
  return $this->status;
}

去除了日志记录和其他的判断。

注意这里:

$this->status = !$status;

返回状态的时候取相反的值!

总结

以上就是PHP中判断exec函数是否执行成功的详细内容及实例代码,有助于帮助大家深入掌握PHP开发,希望本文所述对大家PHP开发的学习有所帮助。

PHP 相关文章推荐
php笔记之常用文件操作
Oct 12 PHP
php ajax 静态分页过程形式
Sep 02 PHP
PHP JSON格式的中文显示问题解决方法
Apr 09 PHP
php实现简易聊天室应用代码
Sep 23 PHP
php防止CC攻击代码 php防止网页频繁刷新
Dec 21 PHP
CodeIgniter配置之database.php用法实例分析
Jan 20 PHP
PHP验证码生成原理和实现
Jan 24 PHP
PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案
Sep 19 PHP
php PDO实现的事务回滚示例
Mar 23 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
Feb 08 PHP
Laravel框架Eloquent ORM修改数据操作示例
Dec 03 PHP
PHP字符串与数组处理函数用法小结
Jan 07 PHP
详解Laravel视图间共享数据与视图Composer
Aug 04 #PHP
yii的入口文件index.php中为什么会有这两句
Aug 04 #PHP
Laravel最佳分割路由文件(routes.php)的方式
Aug 04 #PHP
基于Swoole实现PHP与websocket聊天室
Aug 03 #PHP
浅析php如何实现App常用的秒发功能
Aug 03 #PHP
php微信开发之带参数二维码的使用
Aug 03 #PHP
PHP支付系统设计与典型案例分享
Aug 02 #PHP
You might like
PHP Warning: Module 'modulename' already loaded in问题解决办法
2015/03/16 PHP
基于PHP代码实现中奖概率算法可用于刮刮卡、大转盘等抽奖算法
2015/12/20 PHP
php UNIX时间戳用法详解
2017/02/16 PHP
Yii框架 session 数据库存储操作方法示例
2019/11/18 PHP
jquery photoFrame 图片边框美化显示插件
2010/06/28 Javascript
使用JavaScript和CSS实现文本隔行换色的方法
2015/11/04 Javascript
jQuery插件实现带圆点的焦点图片轮播切换
2016/01/18 Javascript
Bootstrap页面布局基础知识全面解析
2016/06/13 Javascript
js利用appendChild对标签进行排序的实现方法
2016/10/16 Javascript
原生JavaScript实现AJAX、JSONP
2017/02/07 Javascript
解决vue-cli中stylus无法使用的问题方法
2017/06/19 Javascript
jquery实现下拉菜单的手风琴效果
2017/07/23 jQuery
Nginx 配置多站点vhost 的方法
2018/01/07 Javascript
jQuery简单实现根据日期计算星期几的方法
2019/01/09 jQuery
JavaScript命名空间模式实例详解
2019/06/20 Javascript
使用apifm-wxapi快速开发小程序过程详解
2019/08/05 Javascript
[04:04]显微镜下的DOTA2第六期——电影级别的华丽团战
2014/06/20 DOTA
Python装饰器使用示例及实际应用例子
2015/03/06 Python
Python随机生成数模块random使用实例
2015/04/13 Python
Python操作SQLite数据库的方法详解【导入,创建,游标,增删改查等】
2017/07/11 Python
python3实现域名查询和whois查询功能
2018/06/21 Python
python二维列表一维列表的互相转换实例
2018/07/02 Python
英国礼品和生活方式品牌:Treat Republic
2020/11/21 全球购物
《李时珍夜宿古寺》教学反思
2014/04/09 职场文书
行政执法队伍作风整顿剖析材料
2014/10/11 职场文书
保密工作整改报告
2014/11/06 职场文书
2015年房地产销售工作总结
2015/04/20 职场文书
2015年党员岗位承诺书
2015/04/27 职场文书
2015年秋季灭鼠工作总结
2015/07/27 职场文书
2016年共产党员公开承诺书
2016/03/24 职场文书
Java中使用Filter过滤器的方法
2021/06/28 Java/Android
简述Java中throw-throws异常抛出
2021/08/07 Java/Android
25张裸眼3D图片,带你重温童年的记忆,感受3D的魅力
2022/02/06 杂记
Linux中如何安装并部署Redis
2022/04/18 Servers
MySQL添加索引特点及优化问题
2022/07/23 MySQL
JavaScript实现音乐播放器
2022/08/14 Javascript