php shell exec 阻塞,php shell_exec()vs exec()

我正在努力理解shell_exec()和exec()之间的区别…

我总是使用exec()来执行服务器端命令,何时使用shell_exec()?

shell_exec()只是 exec()`的缩写。这似乎是用更少的参数相同的事情。

shell_exec 以字符串形式返回所有的输出流。 exec `默认返回输出的最后一行,但可以提供所有输出作为第二个参数指定的数组。

这是区别。注意最后的换行符。> shell_exec('date')

string(29) "Wed Mar 6 14:18:08 PST 2013n"

> exec('date')

string(28) "Wed Mar 6 14:18:12 PST 2013"

> shell_exec('whoami')

string(9) "markn"

> exec('whoami')

string(8) "mark"

> shell_exec('ifconfig')

string(1244) "eth0 Link encap:Ethernet HWaddr 10:bf:44:44:22:33 n inet addr:192.168.0.90 Bcast:192.168.0.255 Mask:255.255.255.0n inet6 addr: fe80::12bf:ffff:eeee:2222/64 Scope:Linkn UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1n RX packets:16264200 errors:0 dropped:1 overruns:0 frame:0n TX packets:7205647 errors:0 dropped:0 overruns:0 carrier:0n collisions:0 txqueuelen:1000 n RX bytes:13151177627 (13.1 GB) TX bytes:2779457335 (2.7 GB)n"...

> exec('ifconfig')

string(0) ""

更新: 我真的应该解释最后一个。望着这个答案多年以后,连我都不知道为什么这个空白出来了! Daniel解释了这一点 - 这是因为exec只返回最后一行,ifconfig `的最后一行恰好是空白的。

未经作者同意,本文严禁转载,违者必究!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值