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 相关文章推荐
PHP 数组遍历方法大全(foreach,list,each)
Jun 30 PHP
php设计模式 Proxy (代理模式)
Jun 26 PHP
PHP用SAX解析XML的实现代码与问题分析
Aug 22 PHP
需要注意的几个PHP漏洞小结
Feb 05 PHP
基于magic_quotes_gpc与magic_quotes_runtime的区别与使用介绍
Apr 22 PHP
浅析PHP安装扩展mcrypt以及相关依赖项(PHP安装PECL扩展的方法)
Jul 05 PHP
教你如何解密 “ PHP 神盾解密工具 ”
Jun 20 PHP
Smarty中调用FCKeditor的方法
Oct 27 PHP
PHP递归复制、移动目录的自定义函数分享
Nov 18 PHP
PHP二维数组去重实例分析
Nov 18 PHP
详解php与ethereum客户端交互
Apr 28 PHP
php将从数据库中获得的数据转换成json格式并输出的方法
Aug 21 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
一个域名查询的程序
2006/10/09 PHP
php图片加水印原理(超简单的实例代码)
2013/01/18 PHP
php实现mysql数据库分表分段备份
2015/06/18 PHP
浅谈PHP中如何实现Hook机制
2017/11/14 PHP
js中escape对应的C#解码函数 UrlDecode
2012/12/16 Javascript
jQuery插件jquery-barcode实现条码打印的方法
2015/11/25 Javascript
微信公众号支付H5调用支付解析
2016/11/04 Javascript
分类解析jQuery选择器
2016/11/23 Javascript
Bootstrap Tree View简单而优雅的树结构组件实例解析
2017/06/15 Javascript
vue实现图片加载完成前的loading组件方法
2018/02/05 Javascript
JS+HTML5 canvas绘制验证码示例
2018/12/05 Javascript
MockJs结合json-server模拟后台数据
2020/08/26 Javascript
微信小程序实现滑动翻页效果(完整代码)
2019/12/06 Javascript
vue实现短信验证码登录功能(流程详解)
2019/12/10 Javascript
详解为element-ui的Select和Cascader添加弹层底部操作按钮
2020/02/07 Javascript
javascript实现前端成语点击验证优化
2020/06/24 Javascript
Vue Router中应用中间件的方法
2020/08/06 Javascript
对numpy中向量式三目运算符详解
2018/10/31 Python
Django 在iframe里跳转顶层url的例子
2019/08/21 Python
从pandas一个单元格的字符串中提取字符串方式
2019/12/17 Python
Python之变量类型和if判断方式
2020/05/05 Python
python进行OpenCV实战之画图(直线、矩形、圆形)
2020/08/27 Python
Python classmethod装饰器原理及用法解析
2020/10/17 Python
matplotlib 范围选区(SpanSelector)的使用
2021/02/24 Python
HTML5标签使用方法详解
2015/11/27 HTML / CSS
Java TransactionAPI (JTA) 主要包含几部分
2012/12/07 面试题
自主招生自荐信
2013/12/08 职场文书
小学英语课后反思
2014/04/26 职场文书
2015欢度元旦标语口号
2014/12/09 职场文书
贷款收入证明范本
2015/06/12 职场文书
正规欠条模板
2015/07/03 职场文书
2016年学校综治宣传月活动总结
2016/03/16 职场文书
Java 泛型详解(超详细的java泛型方法解析)
2021/07/02 Java/Android
漫画「请问您今天要来点兔子吗?」最新杂志彩页公开
2022/03/24 日漫
Win11运行育碧游戏总是崩溃怎么办 win11玩育碧游戏出现性能崩溃的解决办法
2022/04/06 数码科技
超越Nginx的Web服务器caddy优雅用法
2022/06/21 Servers