| ||||
Yo uso zip.lib...la saque de phpmyadmin una vez, y no se donde la tengo como para pasartela. Igual, de estas clases hay muchas, preguntale a google, segurmente te responda mejor que yo.
__________________ Mi punto de partida es Que Bueno Lo Nuevo |
| ||||
Bueno, pues encontre esta libreria zip.lib: http://www.koders.com/php/fidD3BCF0D...E13DF2453.aspx pero no se como usarle jaja.
__________________ - - :neurotico eso fue un php warning ? creo q si... :golpeado: |
| ||||
Te paso la clase que yo usé, esta de más decir que fue extraida de phpmyadmin. La clase es esta: Código PHP: Luego, la usas de la siguiente manera: (le he sacado todo lo que tenia de más, y no la he probado, pero teniendo el archivo anterior guardado como zip.lib.php, y un file en el mismo nivel llamado archivo.txt, deberia funcionar): Código PHP:
__________________ Mi punto de partida es Que Bueno Lo Nuevo |
| |||
trate Hola Chicos trate de hacer el archivo zip y la verdad pues todavia no me sale haber si me hechan la mano lo puse tal cual lo pone nico bueno solo le cambie $ziper->addFile(file_get_contents($file),"Nombre_Algo.txt"); por Nombre_Algo.zip creo que esta bien asi, ustedes me dicen si no pero me sale el error de que no puedo modificar el header bueno espero su ayuda y mil gracias aplaudo su ayuda ![]() |
| |||
que creen? que creen? pues que ya me salio !!!! de hecho no hay que cambiar el nombre como lo menciono antes, ahora me nace otra duda como puedo agregar mas de un archivo al zip, son bien benidas sus ideas gracias y que tengan buen dia ![]() |
| ||||
¿y por qué no muestras qué tienes en la línea 33???...
__________________ ٩(͡๏̯͡๏)۶ "100 años después, la revolución no es con armas, es intelectual y digital" |
| |||
te paso la clase que yo use busque en internet una que se llamara igual y me funciono y creo que aunque s ellama igual es diferente <?php class zipfile { var $datasec = array(); var $ctrl_dir = array(); var $eof_ctrl_dir = "\x50\x4b\x05\x06\x00\x00\x00\x00"; var $old_offset = 0; var $pathToFPDF = NULL; var $pathToDeepDir = NULL; function zipfile ($output_filename = 'archive.zip', $DeepDir = './DeepDir.php', $FPDF = './fpdf.php') { header('Content-Type: application/x-zip'); header('Content-Disposition: inline; filename="' . $output_filename . '"'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); $this->pathToFPDF = $FPDF; $this->pathToDeepDir = $DeepDir; } function read_File ($file) { if (is_file($file)) { $fp = fopen ($file, 'rb'); $content = fread ($fp, filesize($file)); fclose ($fp); return $content; } } function replaceSuffix ($file, $suffix = 'pdf') { $arr = explode('.', $file); unset($arr[count($arr) - 1]); $file = NULL; foreach($arr as $v) $file .= $v . '.'; $file .= $suffix; return $file; } function getDirContent ($dirName = './') { if (is_dir($dirName)) { if (include($this->pathToDeepDir)) { $dir = new DeepDir(); $dir->setDir($dirName); $dir->load(); return $dir->files; } else { if ($handle = opendir($dirName)) { while (false !== ($file = readdir($handle))) { if (($file != '.') && ($file != '..') && (is_file($file))) { $content[] = $file; } } closedir($handle); return $content; } } } } function addDirContent ($dir = './') { foreach ($this->getDirContent($dir) as $input) { $this->addFileAndRead(str_replace('.//', NULL, $input)); } } function addFileAndRead ($file) { if (is_file($file)) $this->addFile($this->read_File($file), $file); } function addFileAsPDF ($file, $title = 'PDF File', $author = 'Anonymous') { //You need FPDF to use this function! //get it at http://www.fpdf.org/ if (include($this->pathToFPDF)) { $pdf = new PDF(); $pdf->Open(); //edit this as you need it $pdf->SetTitle($title); $pdf->SetAuthor($author); $pdf->PrintChapter(1, $author, $file); //nothing to edit below! $this->addFile($pdf->getBuffer(), $this->replaceSuffix($file)); } else { $filecontent = implode(NULL, file($file)); $content .= '********************************************' . "\n"; $content .= '* *' . "\n"; $content .= '* Couldn\'t find FPDF! *' . "\n"; $content .= '* Adding this File as plain text file. *' . "\n"; $content .= '* *' . "\n"; $content .= '* Below this box is the sourcefile. *' . "\n"; $content .= '* *' . "\n"; $content .= '********************************************' . "\n"; $content .= ' ' . "\n"; $content .= ' ' . "\n"; $content .= ' ' . "\n"; $content .= $filecontent; $this->addFile($content, $file); } } function unix2DosTime($unixtime = 0) { $timearray = ($unixtime == 0) ? getdate() : getdate($unixtime); if ($timearray['year'] < 1980) { $timearray['year'] = 1980; $timearray['mon'] = 1; $timearray['mday'] = 1; $timearray['hours'] = 0; $timearray['minutes'] = 0; $timearray['seconds'] = 0; } return (($timearray['year'] - 1980) << 25) | ($timearray['mon'] << 21) | ($timearray['mday'] << 16) | ($timearray['hours'] << 11) | ($timearray['minutes'] << 5) | ($timearray['seconds'] >> 1); } function addFile($data, $name, $time = 0) { $name = str_replace('\\', '/', $name); $dtime = dechex($this->unix2DosTime($time)); $hexdtime = '\x' . $dtime[6] . $dtime[7] . '\x' . $dtime[4] . $dtime[5] . '\x' . $dtime[2] . $dtime[3] . '\x' . $dtime[0] . $dtime[1]; eval('$hexdtime = "' . $hexdtime . '";'); $fr = "\x50\x4b\x03\x04"; $fr .= "\x14\x00"; // ver needed to extract $fr .= "\x00\x00"; // gen purpose bit flag $fr .= "\x08\x00"; // compression method $fr .= $hexdtime; // last mod time and date // "local file header" segment $unc_len = strlen($data); $crc = crc32($data); $zdata = gzcompress($data); $zdata = substr(substr($zdata, 0, strlen($zdata) - 4), 2); // fix crc bug $c_len = strlen($zdata); $fr .= pack('V', $crc); // crc32 $fr .= pack('V', $c_len); // compressed filesize $fr .= pack('V', $unc_len); // uncompressed filesize $fr .= pack('v', strlen($name)); // length of filename $fr .= pack('v', 0); // extra field length $fr .= $name; // "file data" segment $fr .= $zdata; // "data descriptor" segment (optional but necessary if archive is not // served as file) $fr .= pack('V', $crc); // crc32 $fr .= pack('V', $c_len); // compressed filesize $fr .= pack('V', $unc_len); // uncompressed filesize // add this entry to array $this -> datasec[] = $fr; $new_offset = strlen(implode('', $this->datasec)); // now add to central directory record $cdrec = "\x50\x4b\x01\x02"; $cdrec .= "\x00\x00"; // version made by $cdrec .= "\x14\x00"; // version needed to extract $cdrec .= "\x00\x00"; // gen purpose bit flag $cdrec .= "\x08\x00"; // compression method $cdrec .= $hexdtime; // last mod time & date $cdrec .= pack('V', $crc); // crc32 $cdrec .= pack('V', $c_len); // compressed filesize $cdrec .= pack('V', $unc_len); // uncompressed filesize $cdrec .= pack('v', strlen($name) ); // length of filename $cdrec .= pack('v', 0 ); // extra field length $cdrec .= pack('v', 0 ); // file comment length $cdrec .= pack('v', 0 ); // disk number start $cdrec .= pack('v', 0 ); // internal file attributes $cdrec .= pack('V', 32 ); // external file attributes - 'archive' bit set $cdrec .= pack('V', $this -> old_offset ); // relative offset of local header $this -> old_offset = $new_offset; $cdrec .= $name; // optional extra field, file comment goes here // save to central directory $this -> ctrl_dir[] = $cdrec; } function file() { $data = implode(NULL, $this -> datasec); $ctrldir = implode(NULL, $this -> ctrl_dir); return $data . $ctrldir . $this -> eof_ctrl_dir . pack('v', sizeof($this -> ctrl_dir)) . // total # of entries "on this disk" pack('v', sizeof($this -> ctrl_dir)) . // total # of entries overall pack('V', strlen($ctrldir)) . // size of central dir pack('V', strlen($data)) . // offset to start of central dir "\x00\x00"; // .zip file comment length } } ?> bueno espero y te funcione y alguin que me ayude a agragar directorio completo a un archivo zip que no lo logro o varios archivos que hasta ahora solo puedo de uno ya intente con la funcion function addDirContent ($dir = './') { de la clase pero no lo hace no se que estoy haciendo mal bueno mil gracias |
| |||
Cita: Te sale ese error por la versión de php q usas. Esto solo funciona en php 5 y seguro q tu tienes una versión anterior.
Iniciado por DINASEN a mi me da este error Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in c:\appserv\www\zip\zip.lib.php on line 33 Un Saludo |