PHP执行普通shell命令流程解析


Posted in PHP onAugust 24, 2020

这里演示一些普通的shell命令

php执行shell命令,可以使用下面几个函数:

string system ( string $command [, int &$return_var ] )
string exec ( string $command [, array &$output [, int &$return_var ]] )
void passthru ( string $command [, int &$return_var ] )

注意的是:这三个函数在默认的情况下,都是被禁止了的,如果要使用这几个函数,就要先修改php的配置文件php.ini,查找关键字disable_functions,将这一项中的这几个函数名删除掉,然后注意重启apache。

首先看一下system()和passthru()两个功能类似,可以互换:

<?php
  $shell = "ls -la";
  echo "<pre>";
  system($shell, $status);
  echo "</pre>";
  //注意shell命令的执行结果和执行返回的状态值的对应关系
  $shell = "<font color='red'>$shell</font>";
  if( $status ){
    echo "shell命令{$shell}执行失败";
  } else {
    echo "shell命令{$shell}成功执行";
  }
?>

执行结果如下:

PHP执行普通shell命令流程解析

注意,system()会将shell命令执行之后,立马显示结果,这一点会比较不方便,因为我们有时候不需要结果立马输出,甚至不需要输出,于是可以用到exec()

exec()的使用示例:

<?php
  $shell = "ls -la";
  exec($shell, $result, $status);
  $shell = "<font color='red'>$shell</font>";
  echo "<pre>";
  if( $status ){
    echo "shell命令{$shell}执行失败";
  } else {
    echo "shell命令{$shell}成功执行, 结果如下<hr>";
    print_r( $result );
  }
  echo "</pre>";
?>

运行结果如下:

PHP执行普通shell命令流程解析

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
网络资源
Oct 09 PHP
php下将图片以二进制存入mysql数据库中并显示的实现代码
May 27 PHP
php 过滤器实现代码
Aug 09 PHP
PHP 代码规范小结
Mar 08 PHP
PHP文件注释标记及规范小结
Apr 01 PHP
基于php设计模式中工厂模式详细介绍
May 15 PHP
解析php5配置使用pdo
Jul 03 PHP
PHP中使用Imagick实现各种图片效果实例
Jan 21 PHP
php操作MongoDB类实例
Jun 17 PHP
phalcon框架使用指南
Feb 23 PHP
PHP中子类重载父类的方法【parent::方法名】
May 06 PHP
CI框架(CodeIgniter)实现的导入、导出数据操作示例
May 24 PHP
PHP连接SQL server数据库测试脚本运行实例
Aug 24 #PHP
解决PHP Opcache 缓存刷新、代码重载出现无法更新代码的问题
Aug 24 #PHP
WordPress免插件实现面包屑导航的示例代码
Aug 20 #PHP
VSCode+PHPstudy配置PHP开发环境的步骤详解
Aug 20 #PHP
Laravel相关的一些故障解决
Aug 19 #PHP
聊聊 PHP 8 新特性 Attributes
Aug 19 #PHP
php提高脚本性能的4个技巧
Aug 18 #PHP
You might like
PHP操作MongoDB时的整数问题及对策说明
2011/05/02 PHP
php curl的深入解析
2013/06/02 PHP
PHP信号量基本用法实例详解
2016/02/12 PHP
ThinkPHP下表单令牌错误与解决方法分析
2017/05/20 PHP
php使用PDO从数据库表中读取数据的实现方法(必看)
2017/06/02 PHP
传递参数的标准方法(jQuery.ajax)
2008/11/19 Javascript
JS中eval函数的使用示例
2013/07/21 Javascript
vue.js指令v-for使用及索引获取
2016/11/03 Javascript
Node.js连接mongodb实例代码
2017/06/06 Javascript
关于vue.js组件数据流的问题
2017/07/26 Javascript
深入理解ES7的async/await的用法
2017/09/09 Javascript
vue多种弹框的弹出形式的示例代码
2017/09/18 Javascript
vue-cli2 构建速度优化的实现方法
2019/01/08 Javascript
微信小程序实现的动态设置导航栏标题功能示例
2019/01/31 Javascript
JS大坑之19位数的Number型精度丢失问题详解
2019/04/22 Javascript
使用vue中的混入mixin优化表单验证插件问题
2019/07/02 Javascript
Vuex实现数据增加和删除功能
2019/11/11 Javascript
vue+elementUI(el-upload)图片压缩,默认同比例压缩操作
2020/08/10 Javascript
javascript实现时钟动画
2020/12/03 Javascript
[01:05:56]Liquid vs VP Supermajor决赛 BO 第二场 6.10
2018/07/04 DOTA
Python将DataFrame的某一列作为index的方法
2018/04/08 Python
利用python中集合的唯一性实现去重
2020/02/11 Python
Python使用sqlite3模块内置数据库
2020/05/07 Python
Python3爬虫ChromeDriver的安装实例
2021/02/06 Python
解决pytorch 保存模型遇到的问题
2021/03/03 Python
购买一个高级域名:BuyDomains
2018/03/11 全球购物
英国最受欢迎的在线隐形眼镜商店:VisionDirect.co.uk
2018/12/06 全球购物
乌克兰在线商店的价格比较:Price.ua
2019/07/26 全球购物
外贸学院会计专业应届生求职信
2013/11/14 职场文书
2014年环境卫生工作总结
2014/11/24 职场文书
2014年药品销售工作总结
2014/12/16 职场文书
2015年高三班主任工作总结
2015/05/21 职场文书
2016秋季田径运动会广播稿
2015/12/21 职场文书
周一早安温馨问候祝福语!
2019/07/15 职场文书
关于Oracle12C默认用户名system密码不正确的解决方案
2021/10/16 Oracle
nginx配置指令之server_name的具体使用
2022/08/14 Servers