首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP shell_exec() vs exec()

PHP shell_exec() vs exec()
EN

Stack Overflow用户
提问于 2011-08-17 21:42:38
回答 4查看 477.2K关注 0票数 374

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

我一直使用exec()来执行服务器端命令,什么时候才能使用shell_exec()

shell_exec()仅仅是exec()的缩写吗?这似乎是相同的事情,但参数更少。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-08-17 21:45:30

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

看见

票数 378
EN

Stack Overflow用户

发布于 2013-03-07 06:20:54

以下是不同之处。注意末尾的换行符。

代码语言:javascript
复制
> shell_exec('date')
string(29) "Wed Mar  6 14:18:08 PST 2013\n"
> exec('date')
string(28) "Wed Mar  6 14:18:12 PST 2013"

> shell_exec('whoami')
string(9) "mark\n"
> 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.0\n          inet6 addr: fe80::12bf:ffff:eeee:2222/64 Scope:Link\n          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1\n          RX packets:16264200 errors:0 dropped:1 overruns:0 frame:0\n          TX packets:7205647 errors:0 dropped:0 overruns:0 carrier:0\n          collisions:0 txqueuelen:1000 \n          RX bytes:13151177627 (13.1 GB)  TX bytes:2779457335 (2.7 GB)\n"...
> exec('ifconfig')
string(0) ""

请注意,backtick operator的用法与shell_exec()相同。

更新:,我真的应该解释最后一个。多年后看着这个答案,我甚至不知道为什么它是空白的!丹尼尔在上面解释了这一点--这是因为exec只返回最后一行,而ifconfig的最后一行恰好是空白的。

票数 81
EN

Stack Overflow用户

发布于 2011-08-17 21:46:05

shell_exec -通过外壳执行命令,并以字符串的形式返回完整输出

exec -执行外部程序。

不同之处在于,使用shell_exec时,您将获得作为返回值的输出。

票数 52
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7093860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档