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 相关文章推荐
聊天室php&amp;mysql(三)
Oct 09 PHP
php读取javascript设置的cookies的代码
Apr 12 PHP
选择PHP作为网站开发语言的原因分享
Jan 03 PHP
PHP优于Node.js的五大理由分享
Sep 15 PHP
php inc文件使用的风险和注意事项
Nov 12 PHP
YII实现分页的方法
Jul 09 PHP
将CMYK颜色值和RGB颜色相互转换的PHP代码
Jul 28 PHP
PHP实现一个简单url路由功能实例
Nov 05 PHP
php获取excel文件数据
Apr 21 PHP
ThinkPHP框架实现FTP图片上传功能示例
Apr 08 PHP
Laravel5.5 动态切换多语言的操作方式
Oct 25 PHP
PHP 图片处理
Sep 16 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
php使用str_replace实现输入框回车替换br的方法
2014/11/24 PHP
php实现httpRequest的方法
2015/03/13 PHP
php封装db类连接sqlite3数据库的方法实例
2017/12/19 PHP
PHP ADODB实现分页功能简单示例
2018/05/25 PHP
php支付宝系列之电脑网站支付
2018/05/30 PHP
php-7.3.6 编译安装过程
2020/02/11 PHP
表单提交时自动复制内容到剪贴板的js代码
2007/03/16 Javascript
JS实现在Repeater控件中创建可隐藏区域的代码
2010/09/16 Javascript
javascript实现校验文件上传控件实例
2015/04/20 Javascript
手机端转盘抽奖代码分享
2015/09/10 Javascript
分享纯手写漂亮的表单验证
2015/11/19 Javascript
基于gulp合并压缩Seajs模块的方式说明
2016/06/14 Javascript
KnockoutJS 3.X API 第四章之数据控制流foreach绑定
2016/10/10 Javascript
浅谈jQuery hover(over, out)事件函数
2016/12/03 Javascript
微信小程序仿RadioGroup改变样式的处理方案
2018/07/13 Javascript
vue使用@scroll监听滚动事件时,@scroll无效问题的解决方法详解
2019/10/15 Javascript
Vue中父子组件的值传递与方法传递
2020/09/28 Javascript
[03:24]CDEC.Y赛前采访 努力备战2016国际邀请赛中国区预选赛
2016/06/25 DOTA
[01:22]DOTA2神秘商店携大量周边降临完美大师赛
2017/11/07 DOTA
Python 代码性能优化技巧分享
2012/08/07 Python
numpy.random.seed()的使用实例解析
2018/02/03 Python
详解python读取image
2019/04/03 Python
python爬虫实现中英翻译词典
2019/06/25 Python
python实现图像高斯金字塔的示例代码
2020/12/11 Python
纯css3实现走马灯效果
2014/12/26 HTML / CSS
开发人员所需要知道的HTML5性能分析面面观
2012/07/05 HTML / CSS
设计师家具购买和委托在线市场:Viyet
2016/11/16 全球购物
《北大荒的秋天》教学反思
2014/04/14 职场文书
市场调查策划方案
2014/06/10 职场文书
2014党员干部四风问题对照检查材料思想汇报
2014/09/24 职场文书
悬空寺导游词
2015/02/05 职场文书
办公室行政主管岗位职责
2015/04/09 职场文书
2015年质检工作总结
2015/05/04 职场文书
小学数学国培研修日志
2015/11/13 职场文书
node.js使用express-fileupload中间件实现文件上传
2021/07/16 Javascript
MybatisPlus EntityWrapper如何自定义SQL
2022/03/22 Java/Android