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采集时被封ip的解决方法
Aug 29 PHP
深入file_get_contents函数抓取内容失败的原因分析
Jun 25 PHP
浅谈web上存漏洞及原理分析、防范方法(安全文件上存方法)
Jun 29 PHP
zend optimizer在wamp的基础上安装图文教程
Oct 26 PHP
php中sprintf与printf函数用法区别解析
Feb 17 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(二)
Jun 23 PHP
再Docker中架设完整的WordPress站点全攻略
Jul 29 PHP
php简单实现多维数组排序的方法
Sep 30 PHP
详解yii2实现分库分表的方案与思路
Feb 03 PHP
PHP魔术方法之__call与__callStatic使用方法
Jul 23 PHP
浅谈PHPANALYSIS提取关键字
Mar 08 PHP
php中关于换行的实例写法
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
PHP获取网站中各文章的第一张图片的代码示例
2016/05/20 PHP
windows 2008r2+php5.6.28环境搭建详细过程
2019/06/18 PHP
50个优秀经典PHP算法大集合 附源码
2020/08/26 PHP
Jquery中对数组的操作代码
2011/08/12 Javascript
JavaScript版DateAdd和DateDiff函数代码
2012/03/01 Javascript
jQuery中对节点进行操作的相关介绍
2013/04/16 Javascript
Table冻结表头示例代码
2013/08/20 Javascript
JavaScript中创建类/对象的几种方法总结
2013/11/29 Javascript
javascript中cookie对象用法实例分析
2015/01/30 Javascript
javascript手工制作悬浮菜单
2015/02/12 Javascript
jQuery+ajax实现局部刷新的两种方法
2017/06/08 jQuery
webpack3+React 的配置全解
2017/08/21 Javascript
解决vue 路由变化页面数据不刷新的问题
2018/03/13 Javascript
jQuery超简单遮罩层实现方法示例
2018/09/06 jQuery
少女风vue组件库的制作全过程
2019/05/15 Javascript
[49:21]完美世界DOTA2联赛循环赛 Ink Ice vs LBZS BO2第二场 11.05
2020/11/06 DOTA
PyQt5显示GIF图片的方法
2019/06/17 Python
django使用admin站点上传图片的实例
2019/07/28 Python
浅谈PyQt5中异步刷新UI和Python多线程总结
2019/12/13 Python
Python检测端口IP字符串是否合法
2020/06/05 Python
基于CSS3实现的黑色个性导航菜单效果
2015/09/14 HTML / CSS
俄罗斯电子产品、计算机和家用电器购物网站:OLDI
2019/10/27 全球购物
Java如何调用外部Exe程序
2015/07/04 面试题
信息管理专业学生自荐信格式
2013/09/22 职场文书
简历自荐信
2013/12/02 职场文书
《鹬蚌相争》教学反思
2014/04/22 职场文书
考试诚信承诺书
2014/05/23 职场文书
副总经理任命书
2014/06/05 职场文书
党的群众路线教育实践活动剖析材料
2014/09/30 职场文书
2015年营销工作总结范文
2015/04/23 职场文书
信访维稳承诺书
2015/05/04 职场文书
初中开学典礼新闻稿
2015/07/17 职场文书
最新的离婚协议书范本!
2019/07/02 职场文书
MySQL5.7并行复制原理及实现
2021/06/03 MySQL
MySQL 发生同步延迟时Seconds_Behind_Master还为0的原因
2021/06/21 MySQL
golang的文件创建及读写操作
2022/04/14 Golang