2019独角兽企业重金招聘Python工程师标准>>>

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);

?>

转载于:https://my.oschina.net/u/190107/blog/86519

php 执行shell命令的函数相关推荐

  1. linux c 执行shell命令并获取返回结果

    最近在项目中用到了C语言执行shell命令的问题,调查了一下,一般有system函数.exec族函数,但是还不太清楚怎么获取shell命令执行的返回信息. 例如执行一个ifconfig命令,肯定需要获 ...

  2. python 执行shell命令行效率提升_在python脚本中执行shell命令的方法

    使用Python处理一个shell命令或一个执行一个shell脚本,一般情况下,有以下三种方法,以下我们来看: 第一种方法是使用os.system的方法 os.system(" cmd&qu ...

  3. C或C 如何通过程序执行shell命令并获取命令执行结果?

    1 应用场景 最近在实际程序开发中,需要通过程序执行 shell 命令,并获取命令输出内容.但是系统自带的 system 只能返回命令执行成功与否,不能捕获命令输出. 2 扩展性 由于应用场景本就广泛 ...

  4. Python 执行 shell命令 的几个方法小结

    参考:https://blog.csdn.net/ronnyjiang/article/details/53333538 Python 执行 shell 命令 Python 可以执行 shell 命令 ...

  5. python 执行shell_python执行shell命令的方法

    python执行shell命令的方法 os模块 os.system方式: import os os.system('top') os.system('cat /proc/cpuinfo') 说明 这个 ...

  6. python执行shell命令行_python执行命令行:python中执行shell命令行read结果

    +++++++++++++++++++++++++++++ python执行shell命令 1 os.system  (只有这个方法是边执行边输出,其他方法是最后一次性输出) 可以返回运行shell命 ...

  7. JSch连接不上Linux服务器,windows 下 java程序jsch连接远程linux服务器执行shell命令

    java远程连接服务的shell需要使用SSH的登录方式,可以使用JSch技术.JSch 是SSH2的一个纯Java实现.它允许你连接到一个sshd 服务器,使用端口转发,X11转发,文件传输等等. ...

  8. linux shell 命令执行结果,如何通过程序执行shell命令并获取命令执行结果?

    1 参考资料 1.[c/c++]如何调用[linux]shell命令行命令并获取命令行的输出内容(https://blog.csdn.net/youngstar70/article/details/7 ...

  9. [转载] python执行shell命令的几种方法

    参考链接: 使用Python执行Shell命令 目前我使用到的python中执行cmd的方式有三种: 1. 使用os.system("cmd") 这是最简单的一种方法,特点是执行的 ...

最新文章

  1. win7 python3环境变量设置_如何配置python3的环境变量
  2. html层次选择器例题,JQuery 层次选择器的例子
  3. 救命代码_救命! 如何选择功能?
  4. mysql中定时任务_mysql中定时任务的用法
  5. 用了这么久的数据库连接池,你知道原理吗?
  6. 53 MM配置-评估和科目设置-定义评估控制
  7. 【题解】跳房子-C++
  8. html 绝对位置居中,如何在div中对绝对定位元素进行居中?
  9. 2021 年 Windows 成了 Python 开发者的首选
  10. 设计模式之——简单工厂模式
  11. ubuntu20 隐藏 顶部_ubuntu gnome桌面隐藏顶栏
  12. 分析图书管理系统的5W1H
  13. 一文搞懂单片机驱动8080LCD
  14. iphone7字体风格怎么改_苹果7怎么更改字体样式 苹果手机换好看的字体
  15. MIPI DSI的linux kernel驱动原理 | 基于RK3399
  16. LTE入门之UE-Category
  17. python报错:RuntimeError
  18. 告别 PS !3 行代码 5 秒搞定抠图的 AI 神器!
  19. 2021年A股年度行情回顾与总结
  20. 盘点百度搜索算法大全(2022最新版)

热门文章

  1. repeat mysql翻译_MySQL数据库中系统函数repeat有哪些功能呢?
  2. c语言判断一个已知的二叉树是否是二叉排序树_从ServiceComb学习写好go代码---二叉排序树...
  3. VB.NET 读写HTML 文件,VB.NET 简单介绍文件的读写----流类
  4. android fota解决方案,Android智能终端FOTA方案的制作方法
  5. power bi 雷达图_【自助式数据分析平台——WonderBI(豌豆BI)】免费在线试用_软件库...
  6. 华为鸿蒙系统ui界面会变吗,华为鸿蒙系统:全新UI界面
  7. LinkedHashMap入门
  8. kafka 心跳参数
  9. 再论DataSet与DataFrame的区别
  10. openresty入门 方法及指令