怎样在php中执行exec命令
来源:互联网 发布:辩证看待网络直播 编辑:程序博客网 时间:2024/05/21 14:48
具体我也没搞清楚,在网上找到一片文章,在我执行命令时返回值为1,可是明明存在的.exe文件怎么就不能运行呢?
==========================================================================
exec函数的作用是执行系统命令行命令,其语法为:
string exec ( string command [, array &output [, int &return_var]] )
其中command为要执行的命令字符串,output是执行命令的输出内容,数组格式,一行为数组中的一条记录,return_var是执行命令的返回值。
在dos下,直接执行htpasswd命令,不加任何参数,会得到类似如下的帮助:
E:/cvswork/svntools>htpasswd
Usage:
htpasswd [-cmdpsD] passwordfile username
htpasswd -b[cmdpsD] passwordfile username password
……
因此,出于测试目的,先用exec同样执行一下这个命令看看效果,PHP代码如下:
exec(’ e:/cvswork/svntools/htpasswd.exe’, $ar, $status);
for ($i=0; $i < count($ar); $i++) $ar[$i] = htmlspecialchars($ar[$i]);
$msg = implode(’<br />’ . “/r/n”, $ar);
echo $msg;
代码执行没有错误,但同样什么输出也没有,为什么呢?把命令换成dir或cd都能够正确执行,把htpasswd.exe换成pk.exe也没有问题,难道这个和htpasswd有关系?摸索1个来小时后,终于发现了问题所在。
当使用exec执行不带任何参数的htpasswd.exe的时候,返回值$status是2,而带上参数“-nsb 1 1”以后,返回值是0,并且输出信息正常
1:{SHA}NWoZK3kTsExUV00Ywo1G5jlUKKs=
而执行htpasswd1.exe这个并不存在的文件的时候,返回值是1,并且没有任何输出信息。
因此,我的结论就是,当exec函数执行命令正常,返回值为0的时候,才有输出信息,而当函数执行命令不存在或者返回错误代码的时候,就没有输出信息了。而htpasswd.exe恰好在不带任何参数执行的时候,虽然能够print出帮助信息,但返回状态为2,所以exec函数就没有返回任何输出信息了。
和exec类似的system,passthru,shell_exec等函数应该也是类似的。
============================================================
- 怎样在php中执行exec命令
- php中exec函数执行linux命令
- 让php在服务器能执行exec命令
- PHP exec 函数 执行Linux命令
- php执行shell命令,system、exec、passthru
- php exec java -jar 不能执行命令
- 用php 执行PhantomJS文件,php中使用exec,system等函数调用系统命令
- php在cli命令行执行exec函数中的top命令正常,浏览器访问无输出
- 在PHP中执行系统外部命令
- 在PHP中执行系统外部命令
- 在PHP中执行系统外部命令
- 在PHP中执行系统外部命令
- 在PHP中执行系统外部命令
- 在PHP中执行系统外部命令
- 在PHP中执行系统外部命令
- 在PHP中执行系统外部命令
- 在PHP中执行系统外部命令
- 在PHP中执行系统外部命令
- 《 BUG 参考标准》
- 红警战术中偷与防偷
- 十一长假感
- 关于执行命令行命令的代码的注意事项
- 面向服务的分析与设计原理
- 怎样在php中执行exec命令
- 一个.net调用Office.Interop.owc11实现统计图功能的类
- 在svnmanager里找到几处错误的代码
- 速度暴快的组合生成算法
- svnmanager错误及解决方法记录
- 学习TestDirector的几点困惑
- 绘制玻璃效果
- TestDirector概念
- 一个关于Oracle分页的实现方案