Gerando Arquivos ZIP Dinamicamente
Um pequeno exemplo do uso da classe zipfile:
Bem o resultado é o seguinte :
Dá para notar que para criar diretórios no arquivo zip é só acrescentar antes da string com o nome do arquivo o diretório (nome) e uma "/", como eu fiz com $arq1 e $arq3.
Bem para obter mais informações sobre o funcionamento da classe zipfile é so ir ao site http://www.zend.com/zend/spotlight/creating-zip-files1.php . Mas vou logo avisando que não funciona, por sorte o pessoal do phpMyAdmin (versão 2.2.6) corrigiu e ele está na pasta "libraries" com o nome zip.lib.php .
Agora é só usar a criatividade. Aqui vão algumas sugestões:
1) Um sistema de backup para sua página.
2) Usando "header" você pode criar um sistema de downloads para usuários do site. (João fica a sugestão para seção de artigos, além de imprimir ele teria a opção para download).
3) Criar um offline browser. (Prometo João que não vou testar no site do PHPBRASIL).
Rodrigo Romano Moreira
<?php require("zip.lib.php"); $arq1 = "teste.txt"; //nome do arquivo a ser compactado $arq2 ="hehehe.php"; //nome do arquivo a ser compactado $arq3="data.txt"; //nome do arquivo a ser compactado $abre1 = fopen($arq1, "r"); $com1 = fread($abre1, filesize($arq1)); //string contendo o arquivo a ser compactado fclose($abre1); $abre2 = fopen($arq2, "r"); $com2 = fread($abre2, filesize($arq2)); //string contendo o arquivo a ser compactado fclose($abre2); $abre3 = fopen($arq3, "r"); $com3 = fread($abre3, filesize($arq3)); //string contendo o arquivo a ser compactado fclose($abre3); $zip= new zipfile; //cria o objeto $zip->addFile($com1,"test/$arq1"); //adiciona um arquivo ao zip $zip->addFile($com2,"$arq2"); //adiciona um arquivo ao zip $zip->addFile($com3,"test/int/$arq3"); //adiciona um arquivo ao zip $strzip=$zip->file(); //string contendo o arquivo zip $arq="back.zip"; $abre = fopen($arq, "w"); $salva = fwrite($abre, $strzip); fclose($abre); ?>
Bem o resultado é o seguinte :
Dá para notar que para criar diretórios no arquivo zip é só acrescentar antes da string com o nome do arquivo o diretório (nome) e uma "/", como eu fiz com $arq1 e $arq3.
Bem para obter mais informações sobre o funcionamento da classe zipfile é so ir ao site http://www.zend.com/zend/spotlight/creating-zip-files1.php . Mas vou logo avisando que não funciona, por sorte o pessoal do phpMyAdmin (versão 2.2.6) corrigiu e ele está na pasta "libraries" com o nome zip.lib.php .
Agora é só usar a criatividade. Aqui vão algumas sugestões:
1) Um sistema de backup para sua página.
2) Usando "header" você pode criar um sistema de downloads para usuários do site. (João fica a sugestão para seção de artigos, além de imprimir ele teria a opção para download).
3) Criar um offline browser. (Prometo João que não vou testar no site do PHPBRASIL).
Rodrigo Romano Moreira
Páginas:
1
2
Por exemplo eu envio um arquivo zip p o servidor e este dezipa e poe os arquivos e nao o zip, ex: fotos;
28/02/2007 12:19pm
(~18 anos atrás)
Eu gostaria de saber como faria para compactar alguns diretorios no meu site com essa classe.
Desculpem a ignorancia, é que sou programador coldfusion, e estou engatinhando no PHP, alguém poderia me dar um help?
Desculpem a ignorancia, é que sou programador coldfusion, e estou engatinhando no PHP, alguém poderia me dar um help?
29/06/2006 7:26am
(~18 anos atrás)
Eu estou com um problema quando o download é muito grande tipo 15 mega quando chega a + ou - 40% ele para de baixar diz q a rede foi reconfigurada porq ?
alguem pode me ajudar.
a configuração do download:
$tamanho=strlen($arquivozip);
header("Content-Type: application/octet-stream; name=".$arquivo);
header("Content-Length: ".$tamanho);
header("Content-Transfer-Encoding: binary");
header("Accept-Ranges: none");
header("Content-Disposition: attachment; filename=".$arquivo."\n");
echo $arquivozip;
alguem pode me ajudar.
a configuração do download:
$tamanho=strlen($arquivozip);
header("Content-Type: application/octet-stream; name=".$arquivo);
header("Content-Length: ".$tamanho);
header("Content-Transfer-Encoding: binary");
header("Accept-Ranges: none");
header("Content-Disposition: attachment; filename=".$arquivo."\n");
echo $arquivozip;
29/03/2006 3:52pm
(~19 anos atrás)
Tem como eu colocar uma mensagem de operção efetuada com sucesso! ou uma de Erro !?
10/12/2004 7:38am
(~20 anos atrás)
Fala ae Rodrigo,
Quase estava ficando louco de procurar uma classe que zipasse.
Crio alguns txt´s e agora graças a esse artigo, faço zip deles, agora queria pedir uma ajuda ou uma sugestão. Esses txt´s que gero eles vão com conteúdo em fomato cvs, daí um software lê eles e faz as devidas atualizações, meu pedido é o seguinte :
Zipar e por uma senha no arquivo
ou
Criptografar os dados de um campo (apenas um campo - o senha), quando gerar o txt
Abaixo segue o script que gera o txt.
<?
include("../config.php");
$db = mysql_connect($host, $user, $pass); //conectamos ao mysql
$basedados = mysql_select_db($base); //selecionamos o database escolhido
//Gera O autoridade.txt
// Pega os Dados de seu Banco (No exmplo uso MySQL www.mysql.org)
$sql_sales = mysql_query("SELECT * FROM autoridade ");
$contagem = mysql_num_rows($sql_sales); //traz o resultado da pesquisa acima
// Cria uma Varaivel e Lista
$arquivo = 'autoridade';
while ($datas = mysql_fetch_array($sql_sales)) {
$arquivo_text .= "$datas[id], '$datas[senha]', '$datas[nomeprofissional]', '$datas[orgao]', '$datas[cargo]', '$datas[setor]', '$datas[posicao]'\n";
}
$exte = (isset($cvs)) ? '.cvs' : '.txt';
$abbre = fopen(autoridade.$exte, "w+");
fwrite($abbre, $arquivo_text);
fclose($abbre);
?>
Meu problema é ir os dados do campo senha, os demais dados é tranquilo
Ah ! o software do cara é em delphi
Se puder me ajudar ficarei muito agradecido
Muito obrigado
email : calixtorj@hotmail.com
Hugo
Quase estava ficando louco de procurar uma classe que zipasse.
Crio alguns txt´s e agora graças a esse artigo, faço zip deles, agora queria pedir uma ajuda ou uma sugestão. Esses txt´s que gero eles vão com conteúdo em fomato cvs, daí um software lê eles e faz as devidas atualizações, meu pedido é o seguinte :
Zipar e por uma senha no arquivo
ou
Criptografar os dados de um campo (apenas um campo - o senha), quando gerar o txt
Abaixo segue o script que gera o txt.
<?
include("../config.php");
$db = mysql_connect($host, $user, $pass); //conectamos ao mysql
$basedados = mysql_select_db($base); //selecionamos o database escolhido
//Gera O autoridade.txt
// Pega os Dados de seu Banco (No exmplo uso MySQL www.mysql.org)
$sql_sales = mysql_query("SELECT * FROM autoridade ");
$contagem = mysql_num_rows($sql_sales); //traz o resultado da pesquisa acima
// Cria uma Varaivel e Lista
$arquivo = 'autoridade';
while ($datas = mysql_fetch_array($sql_sales)) {
$arquivo_text .= "$datas[id], '$datas[senha]', '$datas[nomeprofissional]', '$datas[orgao]', '$datas[cargo]', '$datas[setor]', '$datas[posicao]'\n";
}
$exte = (isset($cvs)) ? '.cvs' : '.txt';
$abbre = fopen(autoridade.$exte, "w+");
fwrite($abbre, $arquivo_text);
fclose($abbre);
?>
Meu problema é ir os dados do campo senha, os demais dados é tranquilo
Ah ! o software do cara é em delphi
Se puder me ajudar ficarei muito agradecido
Muito obrigado
email : calixtorj@hotmail.com
Hugo
25/11/2004 12:39am
(~20 anos atrás)
Olá amigos.
Por acaso php_zip.dll tem as mesmas funções que php_zlib.dll, pois quando tento carregar ambas, recebo várias mensagens de erro.
Então resolvi deixar apenas a php_zip.dll, mas o interessante é que ao consultar a função phpinfo() percebi que a zlib estava rodando.
Estou meio confuso quanto a isso.
Alguém pode clarear minhas idéias?
[]s
Cristiano
kinhu@tijucas.com
Por acaso php_zip.dll tem as mesmas funções que php_zlib.dll, pois quando tento carregar ambas, recebo várias mensagens de erro.
Então resolvi deixar apenas a php_zip.dll, mas o interessante é que ao consultar a função phpinfo() percebi que a zlib estava rodando.
Estou meio confuso quanto a isso.
Alguém pode clarear minhas idéias?
[]s
Cristiano
kinhu@tijucas.com
25/04/2004 10:48am
(~20 anos atrás)
Bom ,no mysql (via terminal) você pode usar o comando
mysqldunp seu_bando_de_dump > backup.sql.
Agora via php ,tenho que criar.
mysqldunp seu_bando_de_dump > backup.sql.
Agora via php ,tenho que criar.
24/06/2002 11:28am
(~22 anos atrás)
Não sei qual é o problema,mas posso enviar o meu arquivo que eu uso.
11/06/2002 7:11am
(~22 anos atrás)
http://kromann.info/php4.php, legal que ele tem todos dll´s para win32(até gd).
24/05/2002 10:10pm
(~22 anos atrás)