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学习之字符串比较和查找
Apr 17 PHP
fgetcvs在linux的问题
Jan 15 PHP
深入解析yii权限分级式访问控制的实现(非RBAC法)
Jun 13 PHP
PHP仿博客园 个人博客(2) 数据库增添改删
Jul 05 PHP
PHP中的日期加减方法示例
Aug 21 PHP
php猴子选大王问题解决方法
May 12 PHP
PHP批量去除BOM头代码分享
Jun 26 PHP
PHP计算数组中值的和与乘积的方法(array_sum与array_product函数)
Apr 01 PHP
php打包压缩文件之ZipArchive方法用法分析
Apr 30 PHP
php自定义函数br2nl实现将html中br换行符转换为文本输入中换行符的方法【与函数nl2br功能相反】
Feb 17 PHP
CI框架(CodeIgniter)公共模型类定义与用法示例
Aug 10 PHP
php判断/计算闰年的方法小结【三种方法】
Jul 06 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
摩卡咖啡
2021/03/03 咖啡文化
编写php应用程序实现摘要式身份验证的方法详解
2013/06/08 PHP
CodeIgniter框架数据库事务处理的设计缺陷和解决方案
2014/07/25 PHP
jquery 图片预加载 自动等比例缩放插件
2008/12/25 Javascript
一个js写的日历(代码部分网摘)
2009/09/20 Javascript
JS代码同步文本框内容的实例方法
2013/07/12 Javascript
Egret引擎开发指南之创建项目
2014/09/03 Javascript
jQuery中document与window以及load与ready 区别详解
2014/12/29 Javascript
JavaScript检测鼠标移动方向的方法
2015/05/22 Javascript
JavaScript实现图片轮播组件代码示例
2016/11/22 Javascript
详解基于javascript实现的苹果系统底部菜单
2016/12/02 Javascript
vue-router路由参数刷新消失的问题解决方法
2017/06/17 Javascript
js案例之鼠标跟随jquery版(实例讲解)
2017/07/21 jQuery
vue实现密码显示隐藏切换功能
2018/02/23 Javascript
JS实现DOM删除节点操作示例
2018/04/04 Javascript
微信小程序登录session的使用
2019/03/17 Javascript
js实现鼠标点击页面弹出自定义文字效果
2019/12/24 Javascript
[17:13]DOTA2 HEROS教学视频教你分分钟做大人-斯拉克
2014/06/13 DOTA
[05:13]2018DOTA2亚洲邀请赛主赛事第二日战况回顾 LGD、VG双雄携手晋级
2018/04/05 DOTA
Python基于pygame实现的font游戏字体(附源码)
2015/11/11 Python
《Python学习手册》学习总结
2018/01/17 Python
python对验证码降噪的实现示例代码
2019/11/12 Python
Python 词典(Dict) 加载与保存示例
2019/12/06 Python
python 基于UDP协议套接字通信的实现
2021/01/22 Python
Europcar意大利:汽车租赁
2019/07/07 全球购物
印度尼西亚最完整和最大的在线药房网站:Farmaku.com
2019/11/23 全球购物
爱岗敬业演讲稿范文
2014/01/14 职场文书
安全生产汇报材料
2014/02/17 职场文书
人事专员的职责
2014/02/26 职场文书
培训协议书范本
2014/04/22 职场文书
主持人演讲稿
2014/05/13 职场文书
2014幼儿园家长工作总结
2014/11/10 职场文书
贪污受贿检讨书范文
2014/11/19 职场文书
幼儿园百日安全活动总结
2015/05/07 职场文书
MySQL GRANT用户授权的实现
2021/06/18 MySQL
MySql数据库触发器使用教程
2022/06/01 MySQL