php中使用exec,system等函数调用系统命令

简介: php的内置函数exec,system都可以调用系统命令(shell命令),当然还有passthru,escapeshellcmd等函数。   在很多时候利用php的exec,system等函数调用系统命令可以帮助我们更好更快的完成工作。

php的内置函数exec,system都可以调用系统命令(shell命令),当然还有passthru,escapeshellcmd等函数。

  在很多时候利用php的exec,system等函数调用系统命令可以帮助我们更好更快的完成工作。比如前二天笔者在批量处理.rar文件时exec就帮我了大忙了。

  今天整理一下常用的调用系统函数发出来和大家分享经验。

  注意:要想使用这二个函数php.ini中的安全模式必须关闭,要不然为了安全起见php是不让调用系统命令的。

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

  exec --- 执行外部程式

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

  说明 :

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

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

  如果有给予参数array和return_var,则传回执行的状态命令将会写到这个变量。

  注意 : 如果你允许来自使用者输入的资料,可以传递到此函数,那么你应该使用escapeshellcmd( )来确定此使用者无法哄骗(trick)系统来执行武断的(arbitrary)命令。

  注意 : 如果你使用此函数来启动一个程式,而且希望在背景里(background)执行的时候离开它,你必须确定此程式的输出是转向(redirected)到一个文件或是一些输出的资料流,否则PHP将会悬挂(hang)直到程式执行结束。

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

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

  说明 :

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

  注意 : 如果你允许来自使用者输入的资料,可以传递到此函数,那么你应该使用escapeshellcmd( )来确定此使用者无法哄骗(trick)系统来执行武断的(arbitrary)命令。

  注意 : 如果你使用此函数来启动一个程式,而且希望在背景里(background)执行的时候离开它,你必须确定此程式的输出是转向(redirected)到一个文件或是一些输出的资料流,否则PHP将会悬挂(hang)直到程式执行结束。

  如果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);  
?> 



目录
相关文章
|
3天前
|
安全 前端开发 JavaScript
PHP医院信息化B/S手麻系统源码
开发语言:PHP、 js 技术架构:mysql+laravel+vue2 开发工具:oh-storm 前端框架:vue2 element 后端框架:laravel 数 据 库:mysql 8.0
10 0
PHP医院信息化B/S手麻系统源码
|
16天前
|
运维 Unix Linux
Linux系统 PHP安装expect扩展详解
Linux系统 PHP安装expect扩展详解
29 10
|
22天前
|
PHP Windows
|
28天前
|
机器人 PHP
QQ云端机器人登录系统php源码
QQ云端机器人登录系统php源码
58 4
|
1月前
|
安全 PHP 数据安全/隐私保护
PHP语言B/S医院不良事件报告系统源码
PDCA持续改进,提升医院管理品质 不良事件管理系统,辅助医院进行医疗质量持续改进,例如形成规范完善的不良事件上报机制,提升事件处理的反馈效率,以及通过人、机、料、法、环五个维度对事件因素进行分析,形成事件的整改闭环管理,也能针对某些重点不良事件进行改进,防止严重医疗安全事故再次出现,有效提升医院质量管理品质和医院竞争力。
41 1
|
2月前
|
存储 监控 安全
PHP医院不良事件报告系统源码带鱼骨图分析
不良事件上报系统通过 “事前的人员知识培训管理和制度落地促进”、“事中的事件上报和跟进处理”、 以及 “事后的原因分析和工作持续优化”,结合预存上百套已正在使用的模板,帮助医院从对护理事件、药品事件、医疗器械事件、医院感染事件、输血事件、意外事件、职业暴露事件、后勤保障事件、信息安全事件、消防事件、工程事件、质量安全事件等各类不良事件进行管理的软件。
42 1
|
2月前
|
安全 前端开发 关系型数据库
【PHP】麻醉临床信息系统
【PHP】麻醉临床信息系统
13 0
|
2月前
|
PHP 数据安全/隐私保护
【PHP】手术麻醉系统源码
【PHP】手术麻醉系统源码
16 0
|
2月前
|
安全 PHP 数据安全/隐私保护
【PHP语言】医院安全(不良)事件报告系统源码
【PHP语言】医院安全(不良)事件报告系统源码
61 0
|
2月前
|
SQL 监控 数据库连接
实现基于内网管理监控软件的用户身份验证系统的PHP代码详解
随着信息技术的不断发展,内网管理监控软件的需求也日益增长。为了确保系统的安全性,用户身份验证成为了至关重要的一环。本文将详细介绍如何通过PHP代码实现基于内网管理监控软件的用户身份验证系统,并提供一些代码示例。
213 0

相关产品

  • 云迁移中心