我可以获取PHP代码来解压缩在Linux上运行的文件,但不能在Windows 10上运行

时间:2019-05-19 19:38:00

标签: php windows xampp

我不完全确定这是编码问题,所以我将描述我的Windows环境,以防万一:系统是Windows 10 Pro x64 build 1809,我安装了XAMPP Windows x64 7.2.18-0-VC15。在XAMPP上,我有PHP版本7.2.18。

当我在Linux上尝试时,以下PHP代码执行成功(从Stackoverflow那里获取) :

function unzip_db($filename) {  
    $zip = new ZipArchive;  
    $res = $zip->open($filename);   
    if($res === TRUE)   {       
        $zip->extractTo('./');      
        $zip->close();      
        echo 'File is now uncompressed...';     
    }   else    {       
    echo "Can't open ".$filename;
    echo $res;
    }
}

当我尝试在Windows下运行 时,该代码始终在测试 if($res === TRUE) 上失败。我现在不确定该怎么做:我检查输出phpinfo();中的内容是关于ZIP的:启用Zip,Zip版本:1.15.4,Libzip版本:1.4.0,这可能意味着我的PHP具有ZIP支持,而我做错了。我还找到并下载了php_zip.dll(来自https://pecl.php.net/package/zip/1.15.4/windows),并将行extension=php_zip.dll添加到php.ini文件中,但是没有任何改变。 我没有想法了,但我仍然不知道我在编码或环境配置方面有麻烦,还是什么... 有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我们可以解决这个问题。。我发现压缩测试文件并将其上传到Linux之后,我将它们下载回Windows框中。正是这些文件在PHP中造成了问题。我仍然可以使用7zip打开它们,但我无法使用Windows的内置解压缩器打开它们,这有点奇怪。 即使将文件上传回Linux,我仍然可以使用PHP解压缩它们。似乎Linux和Windows的ZIPlibraries实现之间存在差异,但这不是问题的原因。 因此,我必须解决在上/下载文件时会发生什么情况-但这不在此问题的范围内。 感谢您的贡献。它帮助我挺直腰,因此我能够确定麻烦出在哪里。