Annotation of embedaddon/php/ext/phar/tests/files/phar_test.inc, revision 1.1
1.1 ! misho 1: <?php
! 2:
! 3: if (function_exists('date_default_timezone_set')) {
! 4: date_default_timezone_set('UTC');
! 5: }
! 6:
! 7: $manifest = (binary)'';
! 8: $gflags = 0;
! 9:
! 10: foreach($files as $name => $cont)
! 11: {
! 12: global $gflags, $files;
! 13:
! 14: $comp = NULL;
! 15: $crc32= NULL;
! 16: $clen = NULL;
! 17: $ulen = NULL;
! 18: $time = isset($ftime) ? $ftime : @mktime(12, 0, 0, 3, 1, 2006);
! 19: $flags= 0;
! 20: $perm = 0x000001B6;
! 21: $meta = NULL;
! 22:
! 23: // overwrite if array
! 24: if (is_array($cont))
! 25: {
! 26: foreach(array('comp','crc32','clen','ulen','time','flags','perm','meta','cont') as $what)
! 27: {
! 28: if (isset($cont[$what]))
! 29: {
! 30: $$what = $cont[$what];
! 31: }
! 32: }
! 33: }
! 34:
! 35: // create if not yet done
! 36: if (empty($comp)) $comp = $cont;
! 37: if (empty($ulen)) $ulen = strlen($cont);
! 38: if (empty($clen)) $clen = strlen($comp);
! 39: if (empty($crc32))$crc32= crc32((binary)$cont);
! 40: if (isset($meta)) $meta = serialize($meta);
! 41:
! 42: // write manifest entry
! 43: $manifest .= pack('V', strlen($name)) . (binary)$name;
! 44: $manifest .= pack('VVVVVV', $ulen, $time, $clen, $crc32, $flags|$perm, strlen($meta)) . (binary)$meta;
! 45:
! 46: // globals
! 47: $gflags |= $flags;
! 48: $files[$name] = $comp;
! 49: }
! 50:
! 51: if (!isset($alias)) $alias = 'hio';
! 52:
! 53: if (isset($pmeta)) $pmeta = serialize($pmeta); else $pmeta = '';
! 54:
! 55: $manifest = pack('VnVV', count($files), isset($hasdir) ? 0x1110 : 0x1000, $gflags, strlen($alias)) . (binary)$alias . pack('V', strlen($pmeta)) . (binary)$pmeta . $manifest;
! 56: $file = (binary)$file;
! 57: $file .= pack('V', strlen($manifest)) . $manifest;
! 58:
! 59: foreach($files as $cont)
! 60: {
! 61: $file .= (binary)$cont;
! 62: }
! 63:
! 64: file_put_contents($fname, $file);
! 65:
! 66: if (@$gzip) {
! 67: $fp = gzopen($fname, 'w');
! 68: fwrite($fp, $file);
! 69: fclose($fp);
! 70: }
! 71:
! 72: if (@$bz2) {
! 73: $fp = bzopen($fname, 'w');
! 74: fwrite($fp, $file);
! 75: fclose($fp);
! 76: }
! 77:
! 78: ?>
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>