• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

php执行外部命令函数:exec()、passthru()、system()、shell_exec()对比 ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

PHP提供了4种方法执行系统外部命令:exec()、passthru()、system()、shell_exec(),下面分别介绍:

1、exec

原型:string exec ( string $command [, array &$output [, int &$return_var ]] )

exec执行command命令,但是不会输出全部结果,而是返回结果的最后一行,如果你想得到全部的结果,可以使用第二个参数,让其输出到一个数组,数组的每一个记录代表了输出的每一行,如果输出结果有10行,则数组就有10条记录。所以如果你需要反复输出调用不同系统外部命令的结果,你最好在输出每一条系统外部命令结果时清空这个数组,以防混乱。第三个参数用来取得命令执行的状态码,通常执行成功都是返回0。举例:

 

[php] view plain copy
 
  1. <?php  
  2. exec('ls /home/xyw/test');  
  3. ?>  

没有输出。

 

 

[php] view plain copy
 
  1. <?php  
  2. exec('ls /home/xyw/test',$arr);  
  3. print_r($arr);  
  4. ?>  

输出:

 

 

[plain] view plain copy
 
  1. Array  
  2. (  
  3.     [0] => list.txt  
  4.     [1] => list.txt.ln  
  5.     [2] => tcpdump中文手册.doc  
  6.     [3] => test1  
  7.     [4] => 北邮校徽.jpg  
  8.     [5] => 浪潮之巅.pdf  
  9. )  

2、passthru

 

原型:void passthru ( string $command [, int &$return_var ] )

与exec的区别:passthru直接将结果输出,不返回结果,不用使用echo查看结果。

 

[php] view plain copy
 
  1. <?php  
  2. passthru("ls test");  
  3. ?>  

结果:

 

 

[plain] view plain copy
 
  1. list.txt  
  2. list.txt.ln  
  3. tcpdump中文手册.doc  
  4. test1  
  5. 北邮校徽.jpg  
  6. 浪潮之巅.pdf  

3、system

 

原型:string system ( string $command [, int &$return_var ] )

与passthru的基本相同,但是system返回结果并且输出。(查看system和pssthru的返回值可以看出)

4、shell_exec

是反撇号 (`) 操作符的变体.

 

[plain] view plain copy
 
  1. <?php  
  2.     echo `pwd`;  
  3. ?>  

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
使用PHP创建实体类的一个认识误区发布时间:2022-07-10
下一篇:
phpstudy环境下,入口文件index.php放在public_html文件下发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap