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在程序中将网页生成word文档并提供下载的代码
Oct 09 PHP
基于php 随机数的深入理解
Jun 05 PHP
php计算程序运行时间的简单例子分享
May 10 PHP
php中mail函数发送邮件失败的解决方法
Dec 24 PHP
PHP SPL标准库中的常用函数介绍
May 11 PHP
Yii净化器CHtmlPurifier用法示例(过滤不良代码)
Jul 15 PHP
php实现文章置顶功能的方法
Oct 20 PHP
PHP单例模式详解及实例代码
Dec 21 PHP
PHP实现登录验证码校验功能
May 17 PHP
Yii2处理密码加密及验证的方法
May 12 PHP
在 Laravel 项目中使用 webpack-encore的方法
Jul 21 PHP
PHP实现发送微博消息功能完整示例
Dec 04 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
地球防卫队:陪着奥特曼打小怪兽的人类力量 那些经典队服
2020/03/08 日漫
php给一组指定关键词添加span标签的方法
2015/03/31 PHP
php显示时间常用方法小结
2015/06/05 PHP
CI框架支持$_GET的两种实现方法
2016/05/18 PHP
Laravel Eloquent分表方法并使用模型关联的实现
2019/11/25 PHP
PHP图像处理 imagestring添加图片水印与文字水印操作示例
2020/02/06 PHP
用JavaScript事件串连执行多个处理过程的方法
2007/03/09 Javascript
jquery api参考 visualjquery 中国线路 速度快
2007/11/30 Javascript
解析JavaScript中的不可见数据类型
2013/12/02 Javascript
原生js实现日期联动
2015/01/12 Javascript
JavaScript父子窗体间的调用方法
2015/03/31 Javascript
JS+CSS实现的经典圆角下拉菜单效果代码
2015/10/21 Javascript
easyUI实现(alert)提示框自动关闭的实例代码
2016/11/07 Javascript
如何利用JQuery实现从底部回到顶部的功能
2016/12/27 Javascript
Vue.js对象转换实例
2017/06/07 Javascript
DataTables添加额外的查询参数和删除columns等无用参数实例
2017/07/04 Javascript
webpack的CSS加载器的使用
2018/09/11 Javascript
react native 原生模块桥接的简单说明小结
2019/02/26 Javascript
vue(2.x,3.0)配置跨域代理
2019/11/27 Javascript
JS闭包原理及其使用场景解析
2020/12/03 Javascript
pydev使用wxpython找不到路径的解决方法
2013/02/10 Python
python求crc32值的方法
2014/10/05 Python
python操作mysql代码总结
2018/06/01 Python
Python实现正整数分解质因数操作示例
2018/08/01 Python
python环形单链表的约瑟夫问题详解
2018/09/27 Python
python设定并获取socket超时时间的方法
2019/01/12 Python
python获取txt文件词向量过程详解
2019/07/05 Python
使用Jupyter notebooks上传文件夹或大量数据到服务器
2020/04/14 Python
浅谈keras保存模型中的save()和save_weights()区别
2020/05/21 Python
没编程基础可以学python吗
2020/06/17 Python
HTML5实现应用程序缓存(Application Cache)
2020/06/16 HTML / CSS
JAVA软件工程师测试题
2014/07/25 面试题
中文系师范生自荐信
2013/10/01 职场文书
党员批评与自我批评
2014/02/12 职场文书
保洁员岗位职责
2015/02/04 职场文书
2015年民主评议党员工作总结
2015/05/19 职场文书