function jieqi_makezip($filename, $volume, $type) { if (@function_exists('gzcompress')) { include_once JIEQI_ROOT_PATH . '/lib/compress/zip.php'; $zip = new JieqiZip(); if ($type == 1) { $zipfilename = MYSQL_BACKUP_PATH . '/' . $filename . '-1' . '.zip'; if (!$zip->zipstart($zipfilename)) { return FALSE; } for ($i = 1; $i < $volume; $i++) { $sqlfilename = MYSQL_BACKUP_PATH . '/' . $filename . '-' . $i . '.sql'; if (@is_file($sqlfilename)) { $content = jieqi_readfile($sqlfilename); $zip->zipadd(basename($sqlfilename), $content); jieqi_delfile($sqlfilename); } } if ($zip->zipend()) { @chmod($zipfilename, 0777); } return TRUE; } elseif ($type == 2) { for ($i = 1; $i < $volume; $i++) { $zipfilename = MYSQL_BACKUP_PATH . '/' . $filename . '-' . $i . '.zip'; if (!$zip->zipstart($zipfilename)) { return FALSE; } $sqlfilename = MYSQL_BACKUP_PATH . '/' . $filename . '-' . $i . '.sql'; if (@is_file($sqlfilename)) { $content = jieqi_readfile($sqlfilename); $zip->zipadd(basename($sqlfilename), $content); if ($zip->zipend()) { @chmod($zipfilename, 0777); } jieqi_delfile($sqlfilename); } } return TRUE; } else { return FALSE; } } else { return FALSE; } }
function makezip() { if (JIEQI_MODULE_VTYPE == '' || JIEQI_MODULE_VTYPE == 'Free') { return true; } global $jieqiConfigs; global $jieqi_file_postfix; if (@function_exists('gzcompress')) { $dir = $this->getDir('htmldir', true, false); //逐个加文件,因为里面有内容需要替换 $filelist = array(); if (file_exists($dir)) { $dh = opendir($dir); while (false !== ($files = readdir($dh))) { if ($files != "." && $files != ".." && !is_dir($dir . '/' . $files)) { $filelist[] = $dir . '/' . $files; } } closedir($dh); } if (count($filelist) > 0) { include_once JIEQI_ROOT_PATH . '/lib/compress/zip.php'; $zip = new JieqiZip(); $zipfilename = $this->getDir('zipdir', false) . '/' . $this->id . $jieqi_file_postfix['zip']; if (!$zip->zipstart($zipfilename)) { return false; } foreach ($filelist as $filename) { if (is_file($filename)) { $content = jieqi_readfile($filename); //把css和js替换成本地的 $content = preg_replace("/href=(\"|')([^'\"]*)page.css(\"|')/i", 'href="page.css"', $content, 1); $zip->zipadd(basename($filename), $content); } } //加入css和js $content = jieqi_readfile(JIEQI_ROOT_PATH . '/configs/article/page.css'); $zip->zipadd('page.css', $content); $zip->setComment("Powered by JIEQI CMS\r\nhttp://www.jieqi.com"); if ($zip->zipend()) { @chmod($zipfilename, 0777); } } return true; } else { return false; } }
function makejar($jarfile = '', $jadfile = '') { $zip = new JieqiZip(); $zip->zipstart($jarfile); //建立ZIP文件,准备输出内容 $zip->zipadd('a.class', jieqi_readfile(JIEQI_ROOT_PATH . '/lib/compress/jar/a.class')); $zip->zipadd('b.class', jieqi_readfile(JIEQI_ROOT_PATH . '/lib/compress/jar/b.class')); $zip->zipadd('c.class', jieqi_readfile(JIEQI_ROOT_PATH . '/lib/compress/jar/c.class')); $zip->zipadd('d.class', jieqi_readfile(JIEQI_ROOT_PATH . '/lib/compress/jar/d.class')); $zip->zipadd('e.class', jieqi_readfile(JIEQI_ROOT_PATH . '/lib/compress/jar/e.class')); $zip->zipadd('f.class', jieqi_readfile(JIEQI_ROOT_PATH . '/lib/compress/jar/f.class')); $zip->zipadd('g.class', jieqi_readfile(JIEQI_ROOT_PATH . '/lib/compress/jar/g.class')); $zip->zipadd('h.class', jieqi_readfile(JIEQI_ROOT_PATH . '/lib/compress/jar/h.class')); $zip->zipadd('i.class', jieqi_readfile(JIEQI_ROOT_PATH . '/lib/compress/jar/i.class')); $zip->zipadd('j.class', jieqi_readfile(JIEQI_ROOT_PATH . '/lib/compress/jar/j.class')); $zip->zipadd('k.class', jieqi_readfile(JIEQI_ROOT_PATH . '/lib/compress/jar/k.class')); $zip->zipadd('l.class', jieqi_readfile(JIEQI_ROOT_PATH . '/lib/compress/jar/l.class')); $zip->zipadd('m.class', jieqi_readfile(JIEQI_ROOT_PATH . '/lib/compress/jar/m.class')); $zip->zipadd('n.class', jieqi_readfile(JIEQI_ROOT_PATH . '/lib/compress/jar/n.class')); $zip->zipadd('o.class', jieqi_readfile(JIEQI_ROOT_PATH . '/lib/compress/jar/o.class')); $zip->zipadd('JavaBook.class', jieqi_readfile(JIEQI_ROOT_PATH . '/lib/compress/jar/JavaBook.class')); $zip->zipadd('icon.png', jieqi_readfile(JIEQI_ROOT_PATH . '/lib/compress/jar/icon.png')); $maininest = 'Manifest-Version: 1.0' . "\r\n" . 'Ant-Version: Apache Ant 1.7.0' . "\r\n" . 'MicroEdition-Configuration: CLDC-1.0' . "\r\n" . 'MIDlet-Name: ' . $this->bookinfo['title'] . "\r\n" . 'MIDlet-Version: 1.0' . "\r\n" . 'MIDlet-Vendor: JIEQI CMS (www.jieqi.com)' . "\r\n" . 'MIDlet-1: ' . $this->bookinfo['title'] . ', /icon.png, JavaBook' . "\r\n" . 'MicroEdition-Profile: MIDP-1.0' . "\r\n" . 'Created-By: 10.0-b19 (Sun Microsystems Inc.)' . "\r\n"; $zip->zipadd('META-INF/MANIFEST.MF', $maininest); $index = ''; $index .= chr(0x0) . chr(0x1) . chr(0x30); $index .= $this->dechexs(strlen($this->bookinfo['title']), 2) . $this->bookinfo['title']; $chaptercount = strval(count($this->chapters)); $index .= $this->dechexs(strlen($chaptercount), 2) . $chaptercount; //增加章节 $i = 1; foreach ($this->chapters as $k => $v) { $zip->zipadd($i, $v['content']); $tmpstr = $i . ',' . strlen($v['content']) . ',' . $v['title']; $index .= $this->dechexs(strlen($tmpstr), 2) . $tmpstr; $i++; } //电子书运行后默认首页显示书的信息 $tmpvar = ''; $tmpvar .= strtoupper(JIEQI_SYSTEM_CHARSET) != 'UTF-8' ? iconv(strtoupper(JIEQI_SYSTEM_CHARSET), 'UTF-8//IGNORE', '书名:') : '书名:'; $tmpvar .= $this->bookinfo['title'] . "\r\n"; $tmpvar .= strtoupper(JIEQI_SYSTEM_CHARSET) != 'UTF-8' ? iconv(strtoupper(JIEQI_SYSTEM_CHARSET), 'UTF-8//IGNORE', '作者:') : '作者:'; $tmpvar .= $this->bookinfo['author'] . "\r\n"; $tmpvar .= strtoupper(JIEQI_SYSTEM_CHARSET) != 'UTF-8' ? iconv(strtoupper(JIEQI_SYSTEM_CHARSET), 'UTF-8//IGNORE', '制作:') : '制作:'; $tmpvar .= $this->bookinfo['publisher'] . "\r\n"; if (defined('JIEQI_MAIN_URL')) { $tmpvar .= strtoupper(JIEQI_SYSTEM_CHARSET) != 'UTF-8' ? iconv(strtoupper(JIEQI_SYSTEM_CHARSET), 'UTF-8//IGNORE', '网址:') : '网址:'; $tmpvar .= JIEQI_MAIN_URL . "\r\n"; } $tmpvar = substr($tmpvar, 0, -2); $index .= $this->dechexs(strlen($tmpvar), 4) . $tmpvar; $zip->zipadd('0', $index); $zip->setComment('create by jieqi cms (www.jieqi.com)'); //设置备注 $zip->zipend(); //输出zip文件完毕 $filesize = filesize($jarfile); $jadstr = 'Manifest-Version: 1.0' . "\r\n" . 'Ant-Version: Apache Ant 1.7.0' . "\r\n" . 'MIDlet-1: ' . $this->bookinfo['title'] . ', /icon.png, JavaBook' . "\r\n" . 'MIDlet-Jar-Size: ' . $filesize . "\r\n" . 'MIDlet-Jar-URL: ' . basename($jarfile) . "\r\n" . 'MIDlet-Name: ' . $this->bookinfo['title'] . "\r\n" . 'MIDlet-Vendor: JIEQI CMS (www.jieqi.com)' . "\r\n" . 'MIDlet-Version: 1.0' . "\r\n" . 'MicroEdition-Configuration: CLDC-1.0' . "\r\n" . 'MicroEdition-Profile: MIDP-1.0' . "\r\n"; if (empty($jadfile)) { $i = strrpos($jarfile, '.'); if ($i > 0) { $jadfile = substr($jarfile, 0, $i); } $jadfile .= '.jad'; } jieqi_writefile($jadfile, $jadstr); }