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 相关文章推荐
不用iconv库的gb2312与utf-8的互换函数
Oct 09 PHP
用PHP实现将GB编码转换为UTF8
Nov 25 PHP
php5 pdo新改动加载注意事项
Sep 11 PHP
使用PHP获取网络文件的实现代码
Jan 01 PHP
Smarty Foreach 使用说明
Mar 23 PHP
从零开始学YII2框架(六)高级应用程序模板
Aug 20 PHP
PHP超牛逼无限极分类生成树方法
May 11 PHP
php中使用gd库实现下载网页中所有图片
May 12 PHP
php+curl 发送图片处理代码分享
Jul 09 PHP
php实现的单一入口应用程序实例分析
Sep 23 PHP
php基于SQLite实现的分页功能示例
Jun 21 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
Mar 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 mail 通过Windows的SMTP发送邮件失败的解决方案
2009/05/27 PHP
PHP之COOKIE支持详解
2010/09/20 PHP
php实现的农历算法实例
2015/08/11 PHP
CSS+Table图文混排中实现文本自适应图片宽度(超简单+跨所有浏览器)
2009/02/14 Javascript
JavaScript this调用规则说明
2010/03/08 Javascript
关于jQuery $.isNumeric vs. $.isNaN vs. isNaN
2013/04/15 Javascript
jquery跟js初始化加载的多种方法及区别介绍
2014/04/02 Javascript
从重置input file标签中看jQuery的 .val() 和 .attr(“value”) 区别
2016/06/12 Javascript
jQuery选择器总结之常用元素查找方法
2016/08/04 Javascript
JS实现页面载入时随机显示图片效果
2016/09/07 Javascript
javascript防篡改对象实例详解
2017/04/10 Javascript
JavaScript数组push方法使用注意事项
2017/10/30 Javascript
JavaScript实现的前端AES加密解密功能【基于CryptoJS】
2018/08/28 Javascript
详解离线安装npm包的几种方法
2018/11/25 Javascript
从零开始在NPM上发布一个Vue组件的方法步骤
2018/12/20 Javascript
VUE v-model表单数据双向绑定完整示例
2019/01/21 Javascript
关于vue项目中搜索节流的实现代码
2019/09/17 Javascript
解决vue使用vant轮播组件swipe + flex时文字抖动问题
2021/01/07 Vue.js
用python实现简单EXCEL数据统计的实例
2017/01/24 Python
Python HTTP客户端自定义Cookie实现实例
2017/04/28 Python
Python cookbook(数据结构与算法)字典相关计算问题示例
2018/02/18 Python
Python实现输出某区间范围内全部素数的方法
2018/05/02 Python
python 移除字符串尾部的数字方法
2018/07/17 Python
Python 通过打码平台实现验证码的实现
2019/05/13 Python
python读取目录下所有的jpg文件,并显示第一张图片的示例
2019/06/13 Python
介绍一款python类型检查工具pyright(推荐)
2019/07/03 Python
使用sklearn对多分类的每个类别进行指标评价操作
2020/06/11 Python
html2canvas把div保存图片高清图的方法示例
2018/03/05 HTML / CSS
加拿大知名的国际儿童品牌:Hatley
2016/11/09 全球购物
美国网上书店:Barnes & Noble
2018/08/15 全球购物
魅力教师事迹材料
2014/01/10 职场文书
办理暂住证介绍信
2014/01/11 职场文书
法定代表人身份证明书(含说明)
2014/10/02 职场文书
小学生学习保证书
2015/02/26 职场文书
入党宣誓仪式主持词
2015/06/29 职场文书
CSS布局之浮动(float)和定位(position)属性的区别
2021/09/25 HTML / CSS