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 相关文章推荐
一个取得文件扩展名的函数
Oct 09 PHP
一个PHP日历程序
Dec 06 PHP
PHP数组传递是值传递而非引用传递概念纠正
Jan 31 PHP
str_replace只替换一次字符串的方法
Apr 09 PHP
phpmailer中文乱码问题的解决方法
Apr 22 PHP
PHP生成plist数据的方法
Jun 16 PHP
php实现遍历多维数组的方法
Nov 25 PHP
PHP Cookei记录用户历史浏览信息的代码
Feb 03 PHP
php+resumablejs实现的分块上传 断点续传功能示例
Apr 18 PHP
PHP/ThinkPHP实现批量打包下载文件的方法示例
Jul 31 PHP
Laravel5.0+框架邮件发送功能实现方法图文与实例详解
Apr 23 PHP
关于laravel模板中生成URL的几种模式总结
Oct 18 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 file_exists无效的解决办法
2013/06/26 PHP
PHP根据IP地址获取所在城市具体实现
2013/11/27 PHP
php中curl、fsocket、file_get_content三个函数的使用比较
2014/05/09 PHP
Three.js源码阅读笔记(光照部分)
2012/12/27 Javascript
禁止选中文字兼容IE、Chrome、FF等
2013/09/04 Javascript
JavaScript中的lastIndexOf()方法使用详解
2015/06/06 Javascript
js实现ctrl+v粘贴上传图片(兼容chrome、firefox、ie11)
2016/03/09 Javascript
实例详解display:none与visible:hidden的区别
2017/03/30 Javascript
微信小程序之前台循环数据绑定
2017/08/18 Javascript
原生JS与jQuery编写简单选项卡
2017/10/30 jQuery
React 组件转 Vue 组件的命令写法
2018/02/28 Javascript
vue element-ui table表格滚动加载方法
2018/03/02 Javascript
vue 2.8.2版本配置刚进入时候的默认页面方法
2018/09/21 Javascript
NodeJS模块与ES6模块系统语法及注意点详解
2019/01/04 NodeJs
浅谈对于react-thunk中间件的简单理解
2019/05/01 Javascript
微信小程序自定义组件传值 页面和组件相互传数据操作示例
2019/05/05 Javascript
使用 webpack 插件自动生成 vue 路由文件的方法
2019/08/20 Javascript
vue form表单post请求结合Servlet实现文件上传功能
2021/01/22 Vue.js
[03:56]显微镜下的DOTA2第十一期——鬼畜的死亡先知播音员
2014/06/23 DOTA
Python3学习笔记之列表方法示例详解
2017/10/06 Python
利用python编写一个图片主色转换的脚本
2017/12/07 Python
python 在屏幕上逐字显示一行字的实例
2018/12/24 Python
Python使用ctypes调用C/C++的方法
2019/01/29 Python
Python virtualenv虚拟环境实现过程解析
2020/04/18 Python
numpy 矩阵形状调整:拉伸、变成一位数组的实例
2020/06/18 Python
总结python 三种常见的内存泄漏场景
2020/11/20 Python
美国购买汽车零件网站:Buy Auto Parts
2018/04/02 全球购物
Vinatis德国:法国领先的葡萄酒邮购公司
2020/09/07 全球购物
办公室前台岗位职责范本
2013/12/10 职场文书
《十六年前的回忆》教学反思
2014/02/14 职场文书
致共产党员倡议书
2014/04/16 职场文书
运动与健康自我评价
2015/03/09 职场文书
幼儿园端午节活动总结
2015/05/05 职场文书
十二生肖观后感
2015/06/12 职场文书
sql server删除前1000行数据的方法实例
2021/08/30 SQL Server
Go微服务项目配置文件的定义和读取示例详解
2022/06/21 Golang