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 相关文章推荐
dedecms防止FCK乱格式化你的代码的修改方法
Mar 17 PHP
php为什么选mysql作为数据库? Mysql 创建用户方法
Jul 02 PHP
PHP 模拟$_PUT实现代码
Mar 15 PHP
关于PHP中Object对象的笔记分享
Jun 28 PHP
PHP网站开发中常用的8个小技巧
Feb 13 PHP
PHP中trim()函数简单使用指南
Apr 16 PHP
PHP+jQuery+Ajax实现分页效果 jPaginate插件的应用
Oct 09 PHP
php简单备份与还原MySql的方法
May 09 PHP
php简单实现单态设计模式的方法分析
Jul 28 PHP
PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析
May 11 PHP
PHP实现链表的定义与反转功能示例
Jun 09 PHP
tp5框架无刷新分页实现方法分析
Sep 26 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
Zend framework处理一个http请求的流程分析
2010/02/08 PHP
ThinkPHP的截取字符串函数无法显示省略号的解决方法
2014/06/25 PHP
javascript中xml操作实现代码
2011/11/21 Javascript
js动态添加onload、onresize、onscroll事件(另类方法)
2012/12/26 Javascript
Nodejs学习笔记之NET模块
2015/01/13 NodeJs
使用JavaScript 实现的人脸检测
2015/03/24 Javascript
JavaScript中switch语句的用法详解
2015/06/03 Javascript
JavaScript实现图片滑动切换的代码示例分享
2016/03/06 Javascript
ionic 上拉菜单(ActionSheet)实例代码
2016/06/06 Javascript
Javascript中引用类型传递的知识点小结
2017/03/06 Javascript
javascript 中null和undefined区分和比较
2017/04/19 Javascript
JS中的两种数据类型及实现引用类型的深拷贝的方法
2018/08/12 Javascript
解决Vue2.0 watch对象属性变化监听不到的问题
2018/09/11 Javascript
vue 中 beforeRouteEnter 死循环的问题
2019/04/23 Javascript
vue调用本地摄像头实现拍照功能
2020/08/14 Javascript
javascript实现电商放大镜效果
2020/11/23 Javascript
python实现八大排序算法(2)
2017/09/14 Python
Python3安装Scrapy的方法步骤
2017/11/23 Python
对python中的xlsxwriter库简单分析
2018/05/04 Python
Clarks其乐鞋荷兰官网:Clarks荷兰
2019/07/05 全球购物
C++:memset ,memcpy和strcpy的根本区别
2013/04/27 面试题
应届生自我鉴定
2013/12/11 职场文书
《伯牙绝弦》教学反思
2014/03/02 职场文书
道路建设实施方案
2014/03/18 职场文书
计算机应用应届生求职信
2014/07/12 职场文书
创先争优演讲稿
2014/09/15 职场文书
英语感谢信范文
2015/01/20 职场文书
三潭印月的导游词
2015/02/12 职场文书
初中语文教学研修日志
2015/11/13 职场文书
Nginx配置SSL证书出错解决方案
2021/03/31 Servers
不要在HTML中滥用div
2021/05/08 HTML / CSS
总结一些Java常用的加密算法
2021/06/11 Java/Android
【TED出品】天梯非主流开心游1700 划水骑士
2022/03/31 魔兽争霸
Python可视化动图组件ipyvizzu绘制惊艳的可视化动图
2022/04/21 Python
Mysql InnoDB 的内存逻辑架构
2022/05/06 MySQL
关于Redis的主从复制及哨兵问题
2022/06/16 Redis