微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用Windows Server 2003在php中无法使用system()

我必须在服务器上提取cabfile(.cab).
我正在寻找提取cab文件的脚本,但我还没有得到.
所以现在我尝试使用cabarc.exe进行提取.
但是我遇到的问题是,当我通过命令行运行命令时,它的工作正常,但是当我在PHP中给system()或exec()函数提供相同的命令时,它是行不通的.
代码如下:

    $command = "c:\\exe\\cabarc X c:\\cab\\data.cab c:\\data\\";
if(($output = system($command,$return) != false)
{
  echo "$return";
}

当我在命令行中使用相同的字符串时,它无法正常工作.
请任何机构帮助我解决其所有权利问题,为什么不起作用该怎么做才能使其起作用.
我已授予该站点执行权限.

谢谢

解决方法:

system函数的第二个参数是通过引用传递的,因此它需要由您的代码初始化.另外,您应该使用!==而不是!=检查是否为false,因为它除了值之外还可以验证类型.另外,如果您的if语句中括号似乎不平衡.尝试这个:

$command = "c:\\exe\\cabarc X c:\\cab\\data.cab c:\\data\\";
$return = -1;
$output = system($command, $return);
if($output !== false)
{
    echo "Return value is: " . $return . "\r\n";
    echo "Output is:\r\n" . $output . "\r\n";
}

如果那不能解决您的问题,请确保PHP用户具有访问该文件的权限.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐