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 相关文章推荐
第六节--访问属性和方法
Nov 16 PHP
用PHP实现图象锐化代码
Jun 14 PHP
解析php中die(),exit(),return的区别
Jun 20 PHP
ThinkPHP之用户注册登录留言完整实例
Jul 22 PHP
Smarty中调用FCKeditor的方法
Oct 27 PHP
ThinkPHP写数组插入与获取最新插入数据ID实例
Nov 03 PHP
php中smarty模板条件判断用法实例
Jun 11 PHP
PHP.ini安全配置检测工具pcc简单介绍
Jul 02 PHP
smarty循环嵌套用法示例分析
Jul 19 PHP
Yii2验证器(Validator)用法分析
Jul 23 PHP
PHP实现十进制数字与二十六进制字母串相互转换操作示例
Aug 10 PHP
php+mysql开发的最简单在线题库(在线做题系统)完整案例
Mar 30 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实现文件下载简单示例(代码实现文件下载)
2014/03/10 PHP
laravel安装和配置教程
2014/10/29 PHP
PHP中余数、取余的妙用
2015/06/29 PHP
简单的Jquery遮罩层代码实例
2013/11/14 Javascript
JS正则验证邮箱的格式详细介绍
2013/11/19 Javascript
用JS实现3D球状标签云示例代码
2013/12/01 Javascript
Javascript实现的Map集合工具类完整实例
2015/07/31 Javascript
jquery根据一个值来选中select下的option实例代码
2016/08/29 Javascript
jQuery动态添加与删除tr行实例代码
2016/10/18 Javascript
利用VUE框架,实现列表分页功能示例代码
2017/01/12 Javascript
Bootstrap table表格简单操作
2017/02/07 Javascript
nodejs中使用HTTP分块响应和定时器示例代码
2017/03/19 NodeJs
js canvas实现擦除效果示例代码
2017/04/26 Javascript
微信小程序实现给循环列表添加点击样式实例
2017/04/26 Javascript
jQuery条件分页 代替离线查询(附代码)
2017/08/17 jQuery
Vue+Flask实现简单的登录验证跳转的示例代码
2018/01/13 Javascript
ES6中Set和Map数据结构,Map与其它数据结构互相转换操作实例详解
2019/02/28 Javascript
jQuery实现条件搜索查询、实时取值及升降序排序的方法分析
2019/05/04 jQuery
VuePress 中如何增加用户登录功能
2019/11/29 Javascript
JS实现简易留言板增删功能
2020/02/08 Javascript
[43:57]Liquid vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
Python最长公共子串算法实例
2015/03/07 Python
深入理解Python装饰器
2016/07/27 Python
keras得到每层的系数方式
2020/06/15 Python
深入了解Python装饰器的高级用法
2020/08/13 Python
使用HTML和CSS实现的标签云效果(附demo)
2021/02/03 HTML / CSS
Sofft鞋官网:世界知名鞋类品牌
2017/03/28 全球购物
HelloFresh奥地利:立即订购烹饪盒
2019/02/22 全球购物
保加利亚手表、香水、化妆品和珠宝购物网站:Brasty.bg
2020/04/22 全球购物
导师工作推荐信范文
2014/05/17 职场文书
美术课外活动总结
2014/07/08 职场文书
群众路线查摆问题及整改措施
2014/10/10 职场文书
六年级学生期末评语
2014/12/26 职场文书
评职称个人总结
2015/03/05 职场文书
2016年优秀团员事迹材料
2016/02/25 职场文书
浅谈Node的内存泄露问题
2022/05/06 NodeJs