使用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用户具有访问该文件的权限.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...