来源:自学PHP网 时间:2014-11-25 00:26 作者: 阅读:次
[导读] 这两个函数都是执行Linux命令函数,不同的是获取返回结果不一样,exec只能获取最后一行数据,shell_execu则可以获取全部数据.假如脚本路径下有如下文件:-bash-4.1# ll总用量 12-rw-rw-r--. 1 www......
PHP中exec与shell_exec函数区别这两个函数都是执行Linux命令函数,不同的是获取返回结果不一样,exec只能获取最后一行数据,shell_execu则可以获取全部数据. 假如脚本路径下有如下文件: -bash-4.1# ll 总用量 12 -rw-rw-r--. 1 www web 133 7月 16 15:00 a.php -rw-r--r--. 1 lee web 59 2月 29 17:05 b.php -rw-r--r--. 1 lee web 81 3月 8 17:00 c.php 先看一下php手册对这二个函数的解释: exec --- 执行外部程式 语法:string exec(string command [,array &output [,int &return_var]]) 说明:exec( )执行给予的命令command,不过它并不会输出任何东西,它简单的从命令的结果中传回最后一行,如果你需要去执行一个命令,并且从命令去取得所有资料时,可以使用passthru( )这个函数. 如果有给予参数array,则指定的数组将会被命令所输出的每一行填满,注意:如果数组先前已经包含了一些元素的话,exec( )将会把它附加在数组的后面,如果你不想要此函数附加元素的话,你可以在传递此数组给exec( )之前呼叫unset( ). exec例子,代码如下:
shell_exec() 命令行实际上仅是反撇号 (`) 操作符的变体,如果您编写过 shell 或 Perl 脚本,您就知道可以在反撇号操作符内部捕捉其他命令的输出,例如,清单 1 显示了如何使用反撇号在当前目录中获取每个文本(.txt)的单词计数. 在 shell_exec()中运行相同的命令,代码如下:
获得的结果与从 shell 脚本得到的一样. exec与shell_exec的区别,代码如下:
所以平时使用exec函数的童鞋注意了,如果你需要获取全部返回信息,就应该使用shell_exec函数,当然,如果命令执行结果只有一行返回信息,那么使用哪个都无所谓. |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com