hara Postado Novembro 18, 2003 Denunciar Share Postado Novembro 18, 2003 Pessoal,Como faço pra descomprimir um arquivo .zip inteiro pra dentro de uma pasta no PHP ?Já tentei usando o zip_open, mas não tenho esse componente no meu servidor... Alguém tem a rotina do gzip ?Caso alguém tenha interesse, abaixo a função de unzip com zip_open:function unzip($fln, $path) { $zip = zip_open($fln); if ($zip) { while ($zip_entry = zip_read($zip)) { if (zip_entry_filesize($zip_entry) > 0) { // str_replace must be used under windows to convert "/" into "\" $complete_path = $path.str_replace('/','\\',dirname(zip_entry_name($zip_entry))); $complete_name = $path.str_replace ('/','\\',zip_entry_name($zip_entry)); if(!file_exists($complete_path)) { $tmp = ''; foreach(explode('\\',$complete_path) AS $k) { $tmp .= $k.'\\'; if(!file_exists($tmp)) { mkdir($tmp, 0777); } } } if (zip_entry_open($zip, $zip_entry, "r")) { $fd = fopen($complete_name, 'w'); fwrite($fd, zip_entry_read($zip_entry, zip_entry_filesize($zip_entry))); fclose($fd); zip_entry_close($zip_entry); } } } zip_close($zip); } } Pra descompactar: unzip("/folder/file.zip","/folder_to_unzip/");AbraçosFernando Hara Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest - Mauricio - Postado Novembro 21, 2003 Denunciar Share Postado Novembro 21, 2003 Você já tentou usar algo em Perl PHP?Não sei como fazer, mas sei que existe um jeito ! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Xandão Grunge Postado Maio 17, 2004 Denunciar Share Postado Maio 17, 2004 É pessoal eu também estava precisando descompactar um arquivo .zip .... Alguém poderia falar mais como fazer isso? Grato, Xandão Grunge Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Error404 Postado Maio 17, 2004 Denunciar Share Postado Maio 17, 2004 Tem como fazer com a ZIPLib: http://br.php.net/manual/pt_BR/ref.zip.phpE acho que tem como fazer com a ZLib também, mas não tenho certeza se ela pega .zip além de .gzip: http://br.php.net/manual/pt_BR/ref.zlib.phpNa phpbrasil.com deve ter um artigo sobre isso, mas ela tá fora do ar agora... tenta ir lá mais tarde e procurar por ZIP... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Xandão Grunge Postado Maio 17, 2004 Denunciar Share Postado Maio 17, 2004 Valeu 404error isso já me deu uma luz.... este script eu peguei no endereço que você me passou... achei bem interessante olhem só:--------------------------------------------------------------------------------------If you just want to unzip everything of a zip file in a directory (and create unexisting directories), let's try this:function unzip($file, $path) { $zip = zip_open($file); if ($zip) { while ($zip_entry = zip_read($zip)) { if (zip_entry_filesize($zip_entry) > 0) { // str_replace must be used under windows to convert "/" into "\" $complete_path = $path.str_replace('/','\\',dirname(zip_entry_name($zip_entry))); $complete_name = $path.str_replace ('/','\\',zip_entry_name($zip_entry)); if(!file_exists($complete_path)) { $tmp = ''; foreach(explode('\\',$complete_path) AS $k) { $tmp .= $k.'\\'; if(!file_exists($tmp)) { mkdir($tmp, 0777); } } } if (zip_entry_open($zip, $zip_entry, "r")) { $fd = fopen($complete_name, 'w'); fwrite($fd, zip_entry_read($zip_entry, zip_entry_filesize($zip_entry))); fclose($fd); zip_entry_close($zip_entry); } } } zip_close($zip); }}To use this function:unzip('c:\\file.zip','c:\\temp\\'); // BE CAREFULL: second argument *MUST* finish by a "\" ! ("/" under *nix)Patrick ----------------------------------------------------------------------------------------mas não tive sucesso, apesar de não mostrar qualquer erro...mas um detalhe que eu vi, é que tem que especificar o caminho, o que não adianta o site esteja hospedado num provedor, pois você não vai saber o caminho.O que seria necessário para fazer essa função rodando só na área do site?Grato, Xandão Grunge Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Error404 Postado Maio 17, 2004 Denunciar Share Postado Maio 17, 2004 Tem que instalar a biblioteca Zlib ou a ZipLib pra funcionar...se não tiver instalado, realmente não vai funcionar... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Xandão Grunge Postado Maio 17, 2004 Denunciar Share Postado Maio 17, 2004 Essa biblioteca é a mesma de zziplib? como posso saber se ela está instalada...Eu uso o win XP, IIS 5, PHP 4.3.4-win32e dentro da pasta PHP\extensions tem um arquivo php_zip.dll ... isso quer dizer que contém esta biblioteca ou não?Grato,Xandão Grunge Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Error404 Postado Maio 17, 2004 Denunciar Share Postado Maio 17, 2004 É no php.ini... descomente a linha que tem o nome do dll que deve funcionar sem problemas... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Xandão Grunge Postado Maio 17, 2004 Denunciar Share Postado Maio 17, 2004 é rapaz fui lá e não encntrei esta linha mas encontrei esta daqui:;extension=php_zlib.dlltentei desabilita-la e ele disse que não existia, o que de fato é verdade... mas dai eu criei logo abaixo esta linha com este nome de arquivo que encontrei:extension=php_zip.dllserá que é esta mesmo a biblioteca ou não? caso eu precise ter o php_zlib.dll onde posso puxar... eu tentei puxar no php.net mas não consegui achar nada... pode ser eu não soube fazer esta busca... e essas bibliotecas tem a mesma relação com a zziplib?teria eu que adicinar mais alguma linhaGrato, Xandão Grunge Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Error404 Postado Maio 18, 2004 Denunciar Share Postado Maio 18, 2004 Acho que no caso precisa ser a zlib mesmo...Faça o download dela nessa página aqui: http://www.gzip.org/zlib/Depois é fazer como você fez ali em cima, mas fazendo a referência ao nome desse dll que você vai pegar na página... [deve se chamar zlib1.dll]...Posta aí os resultados... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Xandão Grunge Postado Maio 18, 2004 Denunciar Share Postado Maio 18, 2004 404error eu puxei a biblioteca em um zlib121-dll.zip dai onde eu extraio ele?dentro da pasta php?eu deixo a pasta zlib121-dll com todos seus arquivos ai dentro do php, ou deixo os arquivos na raiz? Agradeço a atenção,Xandão Grunge Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 BEOC Postado Maio 18, 2004 Denunciar Share Postado Maio 18, 2004 C:\php\extensions\------------------------------------------------------------------------eu baixei este daki, tá certo?zlib source code, version 1.2.1, tar.gz format (338k, MD5 checksum ef1cb003448b4a53517b8f25adb12452): France (www.gzip.org) < http://www.gzip.org/zlib/zlib-1.2.1.tar.gz >------------------------------------------------------------------------Tente usar o recurso "Editar post" próxima vez !! Isso deixa o fórum sem posts desnecessários !! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Error404 Postado Maio 18, 2004 Denunciar Share Postado Maio 18, 2004 Tem um arquivo de instrução dentro dele dizendo onde cada arquivo vai...Mas antes de seguir adiante, cara... entra no phpinfo.php do seu servidor aí e veja se ela já não está habilitada...se estiver vai te poupar trabalho... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Xandão Grunge Postado Maio 18, 2004 Denunciar Share Postado Maio 18, 2004 é tá dando trabalho isso aqui heim... coloquei o arquivo zlib1.dll que o 404error me disse dentro de C:\PHP\extensions\convforme o BEOC me disse.dai eu adicionei esta linha no php.ini:extension=zlib1.dllmas dá um erro dizendo que a biblioteca é inexistente... e não vejo nada falando sobre como instalar Grato,Xandão Grunge Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Error404 Postado Maio 18, 2004 Denunciar Share Postado Maio 18, 2004 Dentro do arquivo .zip que vem a zlib tem uma explicação...eu já li e manda colocar uns outros arquivos em outros lugares... dá uma lida lá...Mas antes de mais nada...siga o meu conselho, cara...veja se isso já não está instalado... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest cl3m4 Postado Outubro 16, 2008 Denunciar Share Postado Outubro 16, 2008 APENAS ALGUMAS MODIFICAÇÕES NECESSÁRIAS PARA O CODIGO FUNCIONAR CORRETAMENTE.function unzip($file, $path) { chdir($path); $path = getcwd().'/'; $zip = zip_open($path.$file); if ($zip) { while ($zip_entry = zip_read($zip)) { if (zip_entry_filesize($zip_entry) > 0) { // str_replace must be used under windows to convert "/" into "\" $complete_path = $path.str_replace('/','\\',dirname(zip_entry_name($zip_entry))); $complete_name = $path.str_replace ('/','\\',zip_entry_name($zip_entry)); if(!file_exists($complete_path)) { $tmp = ''; foreach(explode('\\',$complete_path) AS $k) { $tmp .= $k.'\\'; if(!file_exists($tmp)) { mkdir($tmp, 0777); } } } if (zip_entry_open($zip, $zip_entry, "r")) { $fd = fopen($complete_name, 'w'); fwrite($fd, zip_entry_read($zip_entry, zip_entry_filesize($zip_entry))); fclose($fd); zip_entry_close($zip_entry); } } } zip_close($zip); return true; }else{ return false; } }==========================================Bruno AngosDesenvolvimento Web+55 51 8188.1977MSN: brunoangos@hotmail.comskype: brunoangoswww.brunoangos.com========================================== Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
hara
Pessoal,
Como faço pra descomprimir um arquivo .zip inteiro pra dentro de uma pasta no PHP ?
Já tentei usando o zip_open, mas não tenho esse componente no meu servidor... Alguém tem a rotina do gzip ?
Caso alguém tenha interesse, abaixo a função de unzip com zip_open:
Pra descompactar:Abraços
Fernando Hara
Link para o comentário
Compartilhar em outros sites
15 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.