php中使用exec,system等函数调用系统命令
2019独角兽企业重金招聘Python工程师标准>>>
注意:要想使用这二个函数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/BearCatYN/blog/283367
php中使用exec,system等函数调用系统命令相关推荐
- 与 python 中的 os.system(cmd) 返回值与linux 命令返回值对应关系
一.python中的 os.system(cmd)的返回值与linux命令返回值(具体参见本文附加内容)的关系 大家都习惯用os.systemv()函数执行linux命令,该函数的返回值十进制数(分别 ...
- linux中popen函数,system函数与popen函数
为了更好的理解system()函数返回值,需要了解其执行过程,实际上system()函数执行了三步操作: fork一个子进程: 在子进程中调用exec函数去执行command: 在父进程中调用wait ...
- linux应用编程和网络编程-3.4.linux进程全解- 父子关系 exec system函数
程序的开始和结束 编译链接时的引导代码(构建执行环境)调用main函数 ①编译链接时的链接器:将编译器中引导代码给连接进去和应用程序一起构成最终的可执行程序. ②运行时的加载器:将这个程序加载到内存中 ...
- system+执行mysql命令_Windows环境下通过MySQL以SYSTEM身份执行系统命令 -电脑资料
前段时间出了两个关于MySQL的漏洞<MySQL CREATE FUNCTION功能mysql.func表允许注入任意函数库漏洞>.<MySQL CREATE FUNCTION功能l ...
- Perl进程——exec system qx//
在perl中启动子进程执行外部程序有多种方式,主要有exec system qx//,qx//也就是通常说的反引号``.这几种方式有或多或少的区别. 本文想从是否返回进程 返回值是什么 什么时候返回 ...
- [Unity] 战斗系统学习 3:FlowCanvas 中的 Input System
1. 常规 Input System 使用 Assets/MeowFramework/MeowACT/InputSystem/MeowACTInputController.cs // -------- ...
- python execfile_python中eval, exec, execfile,和compile [转载]
eval(str [,globals [,locals ]])函数将字符串str当成有效Python表达式来求值,并返回计算结果. 同样地, exec语句将字符串str当成有效Python代码来执行. ...
- 微信小程序引用php函数,微信小程序Page中data数据操作和函数调用详细介绍
这篇文章主要介绍了微信小程序 详解Page中data数据操作和函数调用的相关资料,需要的朋友可以参考下 微信小程序 详解Page中data数据操作和函数调用 Page() 函数用来注册一个页面.接受一 ...
- DCC - Photoshop - Nvidia NormalMapFilter - 法线生成工具 - 顺便测试 Unity URP 12.1 中的 Decal System
文章目录 NVIDIA Texture Tools Exporter 下载.安装 法线生成素材图 扣干净无用像素 使用 NVIDIA Normal Map Filter 生成贴图 配置好 URP Re ...
最新文章
- 第一篇随笔——新的开端
- 在Paddle中利用AlexNet测试CIFAR10数据集合
- 网络安全和支付 讲解
- rebar Erlang构建工具(转)
- wireshark如何对指定ip进行嗅探
- Saltstack_实战指南01_系统规划
- HDU - 7072 Boring data structure problem 双端队列 + 思维
- 500 强IT公司武汉诚聘 .Net Specialist (Team Leader)
- 【Big Data - Hadoop - MapReduce】初学Hadoop之图解MapReduce与WordCount示例分析
- 缓冲区ByteBuffer简单说明
- php如何实现跳转,php怎么实现页面跳转?
- Julia: 调用Python 库
- 豆丁网word文档下载方法集锦
- mysql自学完整_MySQL自学篇(三)_MySQL
- 使用arecord、aplay命令实现音频的采集和播放
- Obj文件解析相关bug心得
- lerna管理多项目
- GIC通用中断控制器
- 读书笔记之富爸爸穷爸爸
- android版微信什么时候更新版本的,微信6.6版本安卓系统更新时间