exec函数可以运行一些系统命令了,当然许多的主机已经禁止了exec函数运行了,那么我们要如何检查到exec函数是否成功运行呢,下面来看看一篇关于此问题的测试文章。

做一个代码发布的系统,需要用到PHP的exec函数来执行Linux下的命令和git,svn命令,如何判断PHP的exec函数是否执行成功呢?

写个PHP文件来做实验:

exec函数解析

exec语法: string exec(string command, string [array], int [return_var]);

exec返回值: 字符串

Exec参数说明

Command – 需要执行的命令

Array –  是输出值

return_var –是返回值0或1,如果返回0则执行成功,返回1则执行失败。

exec函数第一个参数是执行的命令,第二个参数是执行的结果,第三个参数是执行的状态。

exec('ls', $log, $status);

print_r($log);

print_r($status);

echo PHP_EOL;

执行这个php文件:

这里$log,$status输出结果如图。

但是$status为0,给人的感觉是执行失败,其实不是,这是exec执行成功。

改一下这个php文件,给exec第一个参数一个错误的命令。

如:exec(‘lsaa’,$log,$status).

再次执行,运行结果如图:

这里$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的exec函数是否执行成功相关推荐

  1. php exec 怎么确定执行成功_php执行系统外部命令的4种方法

    提供4种方法: - exec().passthru().system(). shell_exec(). 在开始介绍前,先检查下php配置文件php.ini中是有禁止这是个函数.找到 disable_f ...

  2. Linux---fork函数和exec函数

    这里主要介绍Unix/Linux中进程创建,fork()函数和exec()函数. 这里先介绍一下什么是进程: 进程是正在执行的程序的一个实例.每个实例都有自己的地址空间和执行状态.当操作系统给内核数据 ...

  3. python exec函数_Python3 exec 函数

    Python3 exec 函数 描述 exec 执行储存在字符串或文件中的 Python 语句,相比于 eval,exec可以执行更复杂的 Python 代码. 语法 以下是 exec 的语法: ex ...

  4. 8.10 exec函数

    8.10 exec函数 用fork函数创建子进程后,子进程往往要调用一种exec函数以执行另一个程序.当进程调用一种exec函数时,该进程完全由新程序代换,而新程序则从其m a i n函数开始执行.因 ...

  5. linux exec 二程序,二十五、Linux 进程与信号---exec函数

    25.1 介绍 在用 fork 函数创建子进程后,子进程往往要调用一种 exec 函数以执行另一个程序 当进程调用一种 exec 函数时,该进程完全由新程序代换,替换原有进程的正文,而新程序则从其 m ...

  6. linux的exec函数

    在用fork函数创建子进程后,子进程往往要调用一个exec函数以执行另一个程序 当进程调用一种exec函数时,该进程完全由新程序代换,而新程序则从其main函数开始执行.因为调用exec并不创建新进程 ...

  7. c++中的fork函数_linux c语言 fork() 和 exec 函数的简介和用法

    linux c语言 fork() 和 exec 函数的简介和用法 假如我们在编写1个c程序时想调用1个shell脚本或者执行1段 bash shell命令, 应该如何实现呢? 其实在<stdli ...

  8. linux c语言 fork() 和 exec 函数的简介和用法

    假如我们在编写1个c程序时想调用1个shell脚本或者执行1段 bash shell命令, 应该如何实现呢? 其实在<stdlib.h> 这个头文件中包含了1个调用shell命令或者脚本的 ...

  9. exec函数 终极总结

    进程控制之exec函数 用fork函数创建子进程后,子进程往往要调用一种exec函数以执行另一个程序.当进程调用一种exec函数时,该进程执行的程序完全替换为新程序,而新程序则从其main函数开始执行 ...

最新文章

  1. 剑指offer:面试题16. 数值的整数次方
  2. 清华北大“世界排名断崖式下跌”?
  3. 2018-2019 ACM-ICPC, Asia Xuzhou Regional Contest
  4. Lua面向对象利用metamethod重载运算符
  5. 熊猫分发_实用熊猫指南
  6. html 小于号 乱码,shell重定向(大于号,小于号,左右,21,)
  7. php要求输入是个数求平均值、_Excel表格技巧—如何在 Excel 中快速完成求和、平均值、百分比...
  8. echarts 三环圆环_echarts实现环形进度图
  9. Android开发入门一之Android应用程序架构详解
  10. Node.js webpack
  11. mysql数据库索引回表_简述 MySQL 数据库的覆盖索引与回表
  12. Linux下source ./bashrc出现的command not found: shopt问题
  13. Ensemble_VEP--vcf文件注释
  14. as,which引导的非限定性定语从句
  15. Python的5大就业方向
  16. jsp 的 4 种作用域?
  17. spring boot 和cloud 版本升级
  18. ESP32 LVGL8.1 ——Style local style 样式当地的风格 (Style 11)
  19. MATLAB的RTL-SDR硬件支持包使用详细教程
  20. Ubuntu小小白的碎碎记录【conda篇】

热门文章

  1. netty框架学习及springboot整合集成
  2. Java中final关键字
  3. 收缩控件Expander
  4. 如何解决rpm安装包依赖问题
  5. 电脑CPU温度过高怎么解决呢?怎么才能监测电脑CPU温度?
  6. 中小企业网络安全建设规划_小型企业网络安全规划指南
  7. [估值-002]现金流折现法DCF
  8. 小马哥-----高仿苹果6S 主板型号A231 全网通机型刷机 完美root图与拆机主板图
  9. android通讯联系QuickContactBadge 圆形头像显示详解
  10. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java基于的毕业生实习记录管理系统ba6a4