Lines Matching refs:header

157             $header          = $this->readCentralFileHeader();
158 $header['index'] = $i;
160 fseek($this->fh, $header['offset']); // seek to beginning of file header
161 $header = $this->readFileHeader($header);
162 $fileinfo = $this->header2fileinfo($header);
176 $directory = ($header['folder']) ? $output : dirname($output);
188 if ($header['compression'] == 0) {
201 if ($header['compression'] != 0) {
205 chr($header['compression']),
215 $size = $header['compressed_size'];
225 if ($header['compression'] != 0) {
226 $binary_data = pack('VV', $header['crc'], $header['size']);
234 if ($header['compression'] != 0) {
245 $size = $header['size'];
610 $header = unpack(
615 if ($header['filename_len'] != 0) {
616 $header['filename'] = fread($this->fh, $header['filename_len']);
618 $header['filename'] = '';
621 if ($header['extra_len'] != 0) {
622 $header['extra'] = fread($this->fh, $header['extra_len']);
623 $header['extradata'] = $this->parseExtra($header['extra']);
625 $header['extra'] = '';
626 $header['extradata'] = array();
629 if ($header['comment_len'] != 0) {
630 $header['comment'] = fread($this->fh, $header['comment_len']);
632 $header['comment'] = '';
635 $header['mtime'] = $this->makeUnixTime($header['mdate'], $header['mtime']);
636 $header['stored_filename'] = $header['filename'];
637 $header['status'] = 'ok';
638 if (substr($header['filename'], -1) == '/') {
639 $header['external'] = 0x41FF0010;
641 … $header['folder'] = ($header['external'] == 0x41FF0010 || $header['external'] == 16) ? 1 : 0;
643 return $header;
652 * @param array $header the central file header read previously (see above)
655 protected function readFileHeader($header) argument
663 $header['filename'] = fread($this->fh, $data['filename_len']);
665 $header['extra'] = fread($this->fh, $data['extra_len']);
666 … $header['extradata'] = array_merge($header['extradata'], $this->parseExtra($header['extra']));
668 $header['extra'] = '';
669 $header['extradata'] = array();
672 $header['compression'] = $data['compression'];
679 $header[$hd] = $data[$hd];
682 $header['flag'] = $data['flag'];
683 $header['mtime'] = $this->makeUnixTime($data['mdate'], $data['mtime']);
685 $header['stored_filename'] = $header['filename'];
686 $header['status'] = "ok";
687 …$header['folder'] = ($header['external'] == 0x41FF0010 || $header['external'] == 16) ? 1 …
688 return $header;
694 * @param string $header
697 protected function parseExtra($header) argument
701 while (strlen($header) !== 0) {
702 $set = unpack('vid/vlen', $header);
703 $header = substr($header, 4);
704 $value = substr($header, 0, $set['len']);
705 $header = substr($header, $set['len']);
726 protected function header2fileinfo($header) argument
729 $fileinfo->setSize($header['size']);
730 $fileinfo->setCompressedSize($header['compressed_size']);
731 $fileinfo->setMtime($header['mtime']);
732 $fileinfo->setComment($header['comment']);
733 $fileinfo->setIsdir($header['external'] == 0x41FF0010 || $header['external'] == 16);
735 if(isset($header['extradata']['utf8path'])) {
736 $fileinfo->setPath($header['extradata']['utf8path']);
738 $fileinfo->setPath($this->cpToUtf8($header['filename']));
741 if(isset($header['extradata']['utf8comment'])) {
742 $fileinfo->setComment($header['extradata']['utf8comment']);
744 $fileinfo->setComment($this->cpToUtf8($header['comment']));
932 $header = self::SIG_CENTRAL_FILE_HEADER;
933 $header .= pack('v', 14); // version made by - VFAT
934 $header .= pack('v', 20); // version needed to extract - 2.0
935 $header .= pack('v', 0); // general purpose flag - no flags set
936 $header .= pack('v', $comp); // compression method - deflate|none
937 $header .= pack(
944 $header .= pack('V', $crc); // crc-32
945 $header .= pack('V', $clen); // compressed size
946 $header .= pack('V', $len); // uncompressed size
947 $header .= pack('v', strlen($name)); // file name length
948 $header .= pack('v', strlen($extra)); // extra field length
949 $header .= pack('v', 0); // file comment length
950 $header .= pack('v', 0); // disk number start
951 $header .= pack('v', 0); // internal file attributes
952 $header .= pack('V', 0); // external file attributes @todo was 0x32!?
953 $header .= pack('V', $offset); // relative offset of local header
954 $header .= $name; // file name
955 $header .= $extra; // extra (utf-8 filename)
957 return $header;
979 $header = self::SIG_LOCAL_FILE_HEADER;
980 $header .= pack('v', 20); // version needed to extract - 2.0
981 $header .= pack('v', 0); // general purpose flag - no flags set
982 $header .= pack('v', $comp); // compression method - deflate|none
983 $header .= pack(
990 $header .= pack('V', $crc); // crc-32
991 $header .= pack('V', $clen); // compressed size
992 $header .= pack('V', $len); // uncompressed size
993 $header .= pack('v', strlen($name)); // file name length
994 $header .= pack('v', strlen($extra)); // extra field length
995 $header .= $name; // file name
996 $header .= $extra; // extra (utf-8 filename)
997 return $header;
1010 $header = pack('V', $crc); // crc-32
1011 $header .= pack('V', $clen); // compressed size
1012 $header .= pack('V', $len); // uncompressed size
1013 return $header;