如何在php中解压缩文件

如何在php中解压缩文件,php,Php,我的图库脚本为我提供了通过zip文件上传一组图像的选项。 当我尝试执行此操作时,会收到错误行: 致命错误:在..中调用未定义的函数:zip_open() 以下是phpinfo的摘录: ZLib支持:已启用 编译版本:1.1.4 链接版本:1.1.4 zlib.output\u压缩:关闭 zlib.output\u compression\u level:-1 zlib.output\u处理程序:无值 Zlib已启用。。那么为什么我会收到这个错误消息呢? 感谢您的帮助。默认情况下,PHP中的Zip

我的图库脚本为我提供了通过zip文件上传一组图像的选项。 当我尝试执行此操作时,会收到错误行: 致命错误:在..中调用未定义的函数:zip_open()

以下是phpinfo的摘录:

ZLib支持:已启用 编译版本:1.1.4 链接版本:1.1.4

zlib.output\u压缩:关闭 zlib.output\u compression\u level:-1 zlib.output\u处理程序:无值

Zlib已启用。。那么为什么我会收到这个错误消息呢?
感谢您的帮助。

默认情况下,PHP中的Zip支持未启用。编译php时,需要使用ZZIPlib库和--with zip=[DIR]选项

如果无法安装ZZIPLib,可以使用zip类替代。只是一个例子(不是我写的):


我使用此代码提取zip存档的文件

$zip = new ZipArchive;
if($zip->open($zipname))
{
  for($i=0; $i<$zip->numFiles; $i++)
  {
    echo 'Filename: '.$zip->getNameIndex($i).'<br />';
      }

  if($zip->extractTo(dirname(__FILE__).'/extracted/')){ echo '<p>FILE EXTRACTED</p>'; }else{ echo '<p>ERROR IN FILE ECTRACTING!</p>'; }

  $zip->close();
} 
else 
{
  echo 'Error reading zip-archive!';
}
$zip=新的ZipArchive;
如果($zip->open($zipname))
{
对于($i=0;$inumFiles;$i++)
{
回显“文件名:”。$zip->getNameIndex($i)。
; } if($zip->extractTo(dirname(uuu FILE_uu)。'/extracted/'){echo'文件已提取

'}否则{echo'文件提取错误!

'} $zip->close(); } 其他的 { echo“读取zip存档文件时出错!”; }
提取zip文件的非常简单的代码

$zip = new ZipArchive;
$zip->open('myfile.zip');
$zip->extractTo('./');
$zip->close();

感谢您的回复$zipname表示zip文件路径?是的,例如$zipname=“test.zip”;我把这段代码放到我得到的错误中致命错误:在这里找不到类'ZipArchive',这里是我的代码$filename=”“$zip=new ZipArchive;如果($zip->open($filename)==true){echo“生成文本文件”。对于($i=0;$i<$zip->numFiles;$i++){$entry=$zip->getNameIndex($i);}}}}echo$entry;请参阅@mat的答案。他讲述了如何在PHP中启用Zip支持。您是在本地主机上工作还是在web主机上工作?如果您提供了导致您出现问题的原始示例代码,那么这个问题(在很久以前被问及)可能是一个有效的问题。
$zip = new ZipArchive;
if($zip->open($zipname))
{
  for($i=0; $i<$zip->numFiles; $i++)
  {
    echo 'Filename: '.$zip->getNameIndex($i).'<br />';
      }

  if($zip->extractTo(dirname(__FILE__).'/extracted/')){ echo '<p>FILE EXTRACTED</p>'; }else{ echo '<p>ERROR IN FILE ECTRACTING!</p>'; }

  $zip->close();
} 
else 
{
  echo 'Error reading zip-archive!';
}
$zip = new ZipArchive;
$zip->open('myfile.zip');
$zip->extractTo('./');
$zip->close();