php外部执行命令函数用法小结


Posted in PHP onOctober 11, 2016

本文实例讲述了php外部执行命令函数用法。分享给大家供大家参考,具体如下:

首先先要自我检讨一下的,学习和使用php已经前前后后一年多了,研究和使用Linux系统也差不多一年了,我居然不知道php这种解释型语言可以直接调用操作命令去操纵系统...
先总结下Linux的操作,常用的cd、cp、mv、rm之类的就不提了,值得总结的第一点是普通用户在提取root权限的时候需要在命令前加上sudo,然后在vi编辑器中输出行号的命令是 :set nu。
php的内置函数exec,system都可以调用系统命令(shell命令),但是,要想使用这二个函数php.ini中的安全模式必须关闭,要不然为了安全起见php是不让调用系统命令的。

先看一下php手册对这二个函数的解释:

1. exec --- 执行外部程式

语法 : string exec ( string command [, array &output [, int &return_var]] )

说明 :

exec( )执行给予的命令command,不过它并不会输出任何东西,它简单的从命令的结果中传回最后一行,如果你需要去执行一个命令,并且从命令去取得所有资料时,可以使用passthru( )这个函数。

如果有给予参数array,则指定的数组将会被命令所输出的每一行填满,注意:如果数组先前已经包含了一些元素的话,exec( )将会把它附加在数组的后面,如果你不想要此函数附加元素的话,你可以在传递此数组给exec( )之前呼叫unset( )。

2. system --- 执行外部程式并且显示输出

语法 : string system ( string command [, int &return_var] )

说明 :

system( )执行给予的命令command,并且输出结果。如果有给予参数return_var,则执行命令的状态码将会写到这个变量。

如果PHP是运作成伺服器模组,在输出每一行后,system( )会试着自动地清除web伺服器的输出缓冲。成功则传回命令的最后一行,失败则传回false。

如果你需要去执行一个命令,并且从命令去取得所有资料时,可以使用passthru( )这个函数。

这二个都是用来调用系统shell命令,

不同点:

exec可以把执行的结果全部返回到$output函数里(数组),$status是执行的状态 0为成功 1为失败

systerm不需要提供$output函数,他是直接把结果返回出来,同样$return_var是执行的状态码 0为成功 1为失败

exec示例:

以下为引用的内容:

<?php
  $a = exec("dir",$out,$status);
  print_r($a);
  print_r($out);
  print_r($status);
?>

system示例:

以下为引用的内容:

<?php
  $a = system("dir",$out);
  print_r($a);
  print_r($out);
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
3种平台下安装php4经验点滴
Oct 09 PHP
php5 图片验证码实现代码
Dec 11 PHP
php 无极分类(递归)实现代码
Jan 05 PHP
生成ubuntu自动切换壁纸xml文件的php代码
Jul 17 PHP
PHP安装memcached扩展笔记
May 28 PHP
浅析Yii2中GridView常见操作
Apr 22 PHP
Laravel使用PHPQRCODE实现生成带有LOGO的二维码图片功能示例
Jul 07 PHP
PHP实现的AES加密、解密封装类与用法示例
Aug 02 PHP
PHP 数组黑名单/白名单实例代码详解
Jun 04 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
Feb 18 PHP
TP5框架实现自定义分页样式的方法示例
Apr 05 PHP
php中加密解密DES类的简单使用方法示例
Mar 26 PHP
php字符串操作常见问题小结
Oct 11 #PHP
PHPCMS2008广告模板SQL注入漏洞修复
Oct 11 #PHP
php基于curl实现随机ip地址抓取内容的方法
Oct 11 #PHP
php 获取文件行数的方法总结
Oct 11 #PHP
PHP中文字符串截断无乱码解决方法
Oct 10 #PHP
PHP获取用户客户端真实IP的解决方案
Oct 10 #PHP
php表单加入Token防止重复提交的方法分析
Oct 10 #PHP
You might like
实用函数9
2007/11/08 PHP
php的$_FILES的临时储存文件与回收机制实测过程
2013/07/12 PHP
利用Laravel生成Gravatar头像地址的优雅方法
2017/12/30 PHP
php分享朋友圈的实现代码
2019/02/18 PHP
node.js中的fs.readdir方法使用说明
2014/12/17 Javascript
Js使用WScript.Shell对象执行.bat文件和cmd命令
2014/12/18 Javascript
JS实现仿雅虎首页快捷登录入口及导航模块效果
2015/09/19 Javascript
实用jquery操作表单元素的简单代码
2016/07/04 Javascript
AngularJS表格详解及示例代码
2016/08/17 Javascript
javascript实现简单的可随机变色网页计算器示例
2016/12/30 Javascript
jquery滚动条插件slimScroll使用方法
2017/02/09 Javascript
将angular.js项目整合到.net mvc中的方法详解
2017/06/29 Javascript
基于iScroll实现下拉刷新和上滑加载效果
2017/07/18 Javascript
探索webpack模块及webpack3新特性
2017/09/18 Javascript
vue的mixins属性详解
2018/03/14 Javascript
Vue表单demo v-model双向绑定问题
2018/06/29 Javascript
解决vue-cli项目打包出现空白页和路径错误的问题
2018/09/04 Javascript
详解ES6新增字符串扩张方法includes()、startsWith()、endsWith()
2020/05/12 Javascript
vue中v-model对select的绑定操作
2020/08/31 Javascript
8个非常实用的Vue自定义指令
2020/12/15 Vue.js
python字典的常用操作方法小结
2016/05/16 Python
Python简单定义与使用字典dict的方法示例
2017/07/25 Python
Python实现计算圆周率π的值到任意位的方法示例
2018/05/08 Python
python实现微信定时每天和女友发送消息
2019/04/29 Python
Python 绘制酷炫的三维图步骤详解
2019/07/12 Python
Python 使用 docopt 解析json参数文件过程讲解
2019/08/13 Python
python编写计算器功能
2019/10/25 Python
python如何编写win程序
2020/06/08 Python
python和php哪个容易学
2020/06/19 Python
Python异常处理机制结构实例解析
2020/07/23 Python
AmazeUI 平滑滚动效果的示例代码
2020/08/20 HTML / CSS
毕业生怎样写好自荐信
2013/11/11 职场文书
2014年无财产无子女离婚协议书范本
2014/10/09 职场文书
副总经理岗位职责
2015/02/02 职场文书
2015年政教主任工作总结
2015/07/23 职场文书
Sql-Server数据库单表查询 4.3实验课
2021/04/05 SQL Server