我不完全确定这是编码问题,所以我将描述我的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文件中,但是没有任何改变。
我没有想法了,但我仍然不知道我在编码或环境配置方面有麻烦,还是什么...
有什么建议吗?
答案 0 :(得分:0)
我们可以解决这个问题。。我发现压缩测试文件并将其上传到Linux之后,我将它们下载回Windows框中。正是这些文件在PHP中造成了问题。我仍然可以使用7zip打开它们,但我无法使用Windows的内置解压缩器打开它们,这有点奇怪。 即使将文件上传回Linux,我仍然可以使用PHP解压缩它们。似乎Linux和Windows的ZIPlibraries实现之间存在差异,但这不是问题的原因。 因此,我必须解决在上/下载文件时会发生什么情况-但这不在此问题的范围内。 感谢您的贡献。它帮助我挺直腰,因此我能够确定麻烦出在哪里。