使用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用户具有访问该文件的权限.
标签:iis-6,windows-server-2003,php 来源: https://codeday.me/bug/20191210/2101536.html