Annotation of embedaddon/php/ext/phar/tests/files/phar_test.inc, revision 1.1.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>