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 相关文章推荐
15种PHP Encoder的比较
Mar 06 PHP
php 采集书并合成txt格式的实现代码
Mar 01 PHP
php zip文件解压类代码
Dec 02 PHP
php urlencode()与urldecode()函数字符编码原理详解
Dec 06 PHP
php中3种方法统计字符串中每种字符的个数并排序
Aug 27 PHP
简单的php数据库操作类代码(增,删,改,查)
Apr 08 PHP
php json_encode()函数返回json数据实例代码
Oct 10 PHP
网页的分页下标生成代码(PHP后端方法)
Feb 03 PHP
ThinkPHP中类的构造函数_construct()与_initialize()的区别详解
Mar 13 PHP
PC端微信扫码支付成功之后自动跳转php版代码
Jul 07 PHP
PHP封装curl的调用接口及常用函数详解
May 31 PHP
Thinkphp 框架扩展之数据库驱动常用方法小结
Apr 23 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
纯真IP数据库的应用 IP地址转化成十进制
2009/06/14 PHP
单一index.php实现PHP任意层级文件夹遍历(Zjmainstay原创)
2012/07/31 PHP
详解php中的implements 使用
2017/06/13 PHP
超级有用的13个基于jQuery的内容滚动插件和教程
2011/07/31 Javascript
Js实现双击鼠标自动滚动屏幕的示例代码
2013/12/14 Javascript
深入理解JavaScript系列(40):设计模式之组合模式详解
2015/03/04 Javascript
jscript读写二进制文件的方法
2015/04/22 Javascript
JS模拟酷狗音乐播放器收缩折叠关闭效果代码
2015/10/29 Javascript
JS实现字符串转日期并比较大小实例分析
2015/12/09 Javascript
javascript实现label标签跳出循环操作
2016/03/06 Javascript
JS实现n秒后自动跳转的两种方法
2020/11/30 Javascript
javascript实现图片左右滚动效果【可自动滚动,有左右按钮】
2016/09/19 Javascript
JQuery用$.ajax或$.getJSON跨域获取JSON数据的实现代码
2017/09/23 jQuery
vuejs使用$emit和$on进行组件之间的传值的示例
2017/10/04 Javascript
原生js+cookie实现购物车功能的方法分析
2017/12/21 Javascript
JavaScript求一个数组中重复出现次数最多的元素及其下标位置示例
2018/07/23 Javascript
bootstrap select2插件用ajax来获取和显示数据的实例
2018/08/09 Javascript
[07:03]显微镜下的DOTA2第九期——430圣堂刺客杀戮秀
2014/06/20 DOTA
[52:02]DOTA2-DPC中国联赛 正赛 Phoenix vs Dragon BO3 第二场 2月26日
2021/03/11 DOTA
Python实现的一个自动售饮料程序代码分享
2014/08/25 Python
Python使用scrapy采集数据过程中放回下载过大页面的方法
2015/04/08 Python
python flask中静态文件的管理方法
2018/03/20 Python
Python爬虫框架scrapy实现downloader_middleware设置proxy代理功能示例
2018/08/04 Python
Python学习笔记之迭代器和生成器用法实例详解
2019/08/08 Python
基于Python解密仿射密码
2019/10/21 Python
Python实现密码薄文件读写操作
2019/12/16 Python
python 实现ping测试延迟的两种方法
2020/12/10 Python
Jupyter安装拓展nbextensions及解决官网下载慢的问题
2021/03/03 Python
纯CSS实现预加载动画效果
2017/09/06 HTML / CSS
利用CSS3 动画 绘画 圆形动态时钟
2018/03/20 HTML / CSS
详解如何在css中引入自定义字体(font-face)
2018/05/17 HTML / CSS
英国在线药房:Express Chemist
2019/03/28 全球购物
北京RT科技有限公司.net工程师面试题
2013/02/15 面试题
物流专业大学生的自我鉴定
2013/11/13 职场文书
运动会方阵口号
2014/06/07 职场文书
人力资源管理专业自荐信
2014/06/24 职场文书