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下一个非常全面获取图象信息的函数
Nov 20 PHP
php设计模式 Mediator (中介者模式)
Jun 26 PHP
PHP教程之PHP中shell脚本的使用方法分享
Feb 23 PHP
PHP 面向对象详解
Sep 13 PHP
PHP判断数据库中的记录是否存在的方法
Nov 14 PHP
php将日期格式转换成xx天前的格式
Apr 16 PHP
PHP开发Apache服务器配置
Jul 15 PHP
thinkPHP5.0框架配置格式、加载解析与读取方法
Mar 17 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
Sep 21 PHP
thinkphp3.2.0 setInc方法 源码全面解析
Jan 29 PHP
修改Laravel自带的认证系统的User类的命名空间的步骤
Oct 15 PHP
thinkphp5 路由分发原理
Mar 18 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
SONY ICF-SW07收音机电路分析
2021/03/02 无线电
php记录搜索引擎爬行记录的实现代码
2018/03/02 PHP
PHP图像处理 imagestring添加图片水印与文字水印操作示例
2020/02/06 PHP
JavaScript 学习 - 提高篇
2007/02/02 Javascript
几个常用的JavaScript字符串处理函数 - split()、join()、substring()和indexOf()
2009/06/02 Javascript
[原创]IE view-source 无法查看看源码 JavaScript看网页源码
2009/07/19 Javascript
Jquery 自定义动画概述及示例
2013/03/29 Javascript
页面装载js及性能分析方法介绍
2014/03/21 Javascript
JavaScript中的toLocaleLowerCase()方法使用详解
2015/06/06 Javascript
JavaScript数据库TaffyDB用法实例分析
2015/07/27 Javascript
jQuery简单注册和禁用全局事件的方法
2016/07/25 Javascript
Vue.js组件tree实现无限级树形菜单
2016/12/02 Javascript
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
2016/12/14 Javascript
JavaScript控制输入框中只能输入中文、数字和英文的方法【基于正则实现】
2017/03/03 Javascript
vue页面使用阿里oss上传功能的实例(一)
2017/08/09 Javascript
webpack组织模块打包Library的原理及实现
2018/03/10 Javascript
vue history 模式打包部署在域名的二级目录的配置指南
2019/07/02 Javascript
微信小程序开发之map地图组件定位并手动修改位置偏差
2019/08/17 Javascript
微信小程序 拍照或从相册选取图片上传代码实例
2019/08/28 Javascript
[01:02:10]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第一局
2016/02/26 DOTA
在Python程序中操作文件之isatty()方法的使用教程
2015/05/24 Python
Python遍历文件夹和读写文件的实现代码
2016/08/28 Python
一个基于flask的web应用诞生(1)
2017/04/11 Python
解决nohup重定向python输出到文件不成功的问题
2018/05/11 Python
python实现字符串和字典的转换
2018/09/29 Python
DataFrame.groupby()所见的各种用法详解
2020/06/14 Python
Python中的流程控制详解
2021/02/18 Python
打印机墨盒:123Inkjets
2017/02/16 全球购物
公司财务工作总结的自我评价
2013/11/23 职场文书
车辆工程专业求职信
2014/04/28 职场文书
项目委托协议书(最新)
2014/09/13 职场文书
三严三实心得体会范文
2014/10/13 职场文书
重阳节慰问信
2015/02/15 职场文书
Nginx缓存设置案例详解
2021/09/15 Servers
C3 线性化算法与 MRO之Python中的多继承
2021/10/05 Python
关于对TypeScript泛型参数的默认值理解
2022/07/15 Javascript