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的采集的图文教程
Mar 11 PHP
PHP curl 并发最佳实践代码分享
Sep 05 PHP
PHP获取MSN好友列表类的实现代码
Jun 23 PHP
PHP开启opcache提升代码性能
Apr 26 PHP
php中Snoopy类用法实例
Jun 19 PHP
php验证码的制作思路和实现方法
Nov 12 PHP
PHP中PDO连接数据库中各种DNS设置方法小结
May 13 PHP
thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法
May 19 PHP
浅谈php fopen下载远程文件的函数
Nov 18 PHP
使用PHP开发留言板功能
Nov 19 PHP
ThinkPHP5与单元测试PHPUnit使用详解
Feb 23 PHP
PHP中的输出echo、print、printf、sprintf、print_r和var_dump的示例代码
Dec 01 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中判断文件空目录是否有读写权限的函数代码
2012/08/07 PHP
PHP中几个可以提高运行效率的代码写法、技巧分享
2014/08/21 PHP
ThinkPHP添加更新标签的方法
2014/12/05 PHP
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
2015/03/25 PHP
Zend Framework入门教程之Zend_View组件用法示例
2016/12/09 PHP
javascript 日历提醒系统( 兼容所有浏览器 )
2009/04/07 Javascript
js中indexof的用法详细解析
2013/12/24 Javascript
a标签的href与onclick事件的区别详解
2014/11/12 Javascript
JavaScript、tab切换完整版(自动切换、鼠标移入停止、移开运行)
2016/01/05 Javascript
js通过classname来获取元素的方法
2016/11/24 Javascript
ionic2 tabs使用 Modal底部tab弹出框
2016/12/30 Javascript
微信小程序 循环及嵌套循环的使用总结
2017/09/26 Javascript
js实现鼠标单击Tab表单切换效果
2018/05/16 Javascript
jQuery插件实现弹性运动完整示例
2018/07/07 jQuery
nodejs 使用 js 模块的方法实例详解
2018/12/04 NodeJs
Vue.js轮播图走马灯代码实例(全)
2019/05/08 Javascript
[06:40]2014DOTA2西雅图国际邀请赛 DK战队巡礼
2014/07/07 DOTA
Python生成器(Generator)详解
2015/04/13 Python
Python本地与全局命名空间用法实例
2015/06/16 Python
Python将多个list合并为1个list的方法
2018/06/27 Python
python实现一组典型数据格式转换
2018/12/15 Python
在Python中字典根据多项规则排序的方法
2019/01/21 Python
解决django前后端分离csrf验证的问题
2019/02/03 Python
用pytorch的nn.Module构造简单全链接层实例
2020/01/14 Python
Python3打包exe代码2种方法实例解析
2020/02/17 Python
HTML5 WebGL 实现民航客机飞行监控系统
2019/07/25 HTML / CSS
详解html5 canvas 微信海报分享(个人爬坑)
2018/01/12 HTML / CSS
Rockport乐步美国官网:风靡美国的白宫鞋
2016/11/24 全球购物
Lou & Grey美国官网:主打舒适性面料服饰
2017/12/21 全球购物
派出所副所长四风问题个人整改措施思想汇报
2014/10/13 职场文书
群众路线教育实践活动心得体会(四风)
2014/11/03 职场文书
语文教师求职信范文
2015/03/20 职场文书
毕业证明模板
2015/06/19 职场文书
2019年最新证婚词精选集!
2019/06/28 职场文书
导游词之唐山景点
2019/12/18 职场文书
Win11任务栏无法正常显示 资源管理器不停重启的解决方法
2022/07/07 数码科技