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会员权限控制实现原理分析
May 29 PHP
PHP 基于Yii框架中使用smarty模板的方法详解
Jun 13 PHP
php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
Sep 28 PHP
ThinkPHP中处理表单中的注意事项
Nov 22 PHP
yii的CURD操作实例详解
Dec 04 PHP
php实现网页缓存的工具类分享
Jul 14 PHP
php 参数过滤、数据过滤详解
Oct 26 PHP
php文件系统处理方法小结
May 23 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
Jun 14 PHP
PHP微商城开源代码实例
Mar 27 PHP
PHP ElasticSearch做搜索实例讲解
Feb 05 PHP
php的对象传值与引用传值代码实例讲解
Feb 26 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 删除文件与文件夹操作 unlink()与rmdir()这两个函数的使用
2011/07/17 PHP
php生成rss类用法实例
2015/04/14 PHP
php类的定义与继承用法实例
2015/07/07 PHP
百万级别知乎用户数据抓取与分析之PHP开发
2015/09/28 PHP
Yii2 rbac权限控制之菜单menu实例教程
2016/04/28 PHP
PHP经典实用正则表达式小结
2017/05/04 PHP
国外Lightbox v2.03.3 最新版 下载
2007/10/17 Javascript
JS中的public和private对象,即static修饰符
2012/01/18 Javascript
js实现数组去重、判断数组以及对象中的内容是否相同
2013/11/29 Javascript
js 数组去重的四种实用方法
2014/09/09 Javascript
JavaScript中使用Object.prototype.toString判断是否为数组
2015/04/01 Javascript
深入浅析JavaScript中的scrollTop
2016/07/11 Javascript
微信公众号开发 实现点击返回按钮就返回到聊天界面
2016/12/15 Javascript
AngularJS中控制器函数的定义与使用方法示例
2017/10/10 Javascript
五步轻松实现JavaScript HTML时钟效果
2020/03/25 Javascript
Json实现传值到后台代码实例
2020/06/30 Javascript
JavaScript常用进制转换及位运算实例解析
2020/10/14 Javascript
python使用urllib2模块获取gravatar头像实例
2013/12/18 Python
python中正则表达式的使用详解
2014/10/17 Python
Python模块文件结构代码详解
2018/02/03 Python
Python yield与实现方法代码分析
2018/02/06 Python
对python创建及引用动态变量名的示例讲解
2018/11/10 Python
python开发游戏的前期准备
2019/05/05 Python
python3反转字符串的3种方法(小结)
2019/11/07 Python
HTML5 本地存储 LocalStorage详解
2016/06/24 HTML / CSS
Html5移动端弹幕动画实现示例代码
2018/08/27 HTML / CSS
NBA欧洲商店(英国):NBA Europe Store UK
2018/07/27 全球购物
什么是跨站脚本攻击
2014/12/11 面试题
小区物业门卫岗位职责
2014/04/10 职场文书
英文求职信范文
2014/05/23 职场文书
社会发展项目建议书
2014/08/25 职场文书
关于成绩下滑的自我检讨书
2014/09/20 职场文书
教师党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
小学校园广播稿集锦
2014/10/04 职场文书
2014高三学生考试作弊检讨书
2014/12/14 职场文书
Python 用户输入和while循环的操作
2021/05/23 Python