public function __construct($handle = null)
{
parent::__construct();
$this->header = parent::HEADER_EXTENDED_TIMESTAMP;
if ($handle != null) {
fread($handle, 2);
$arr = unpack('vlength/cflags', fread($handle, 3));
$this->length = $arr['length'];
$this->flags = $arr['flags'] & 0xff;
$consumed = 1;
$this->isModTimeSet = ZipUtils::testBit($this->flags, 0);
$this->isAcTimeSet = ZipUtils::testBit($this->flags, 1);
$this->isCrTimeSet = ZipUtils::testBit($this->flags, 2);
if ($this->isModTimeSet && $consumed < $this->length) {
$arr = unpack('V', fread($handle, 4));
$this->modTime = $arr[1];
$consumed += 4;
}
if ($this->isAcTimeSet && $consumed < $this->length) {
$arr = unpack('V', fread($handle, 4));
$this->acTime = $arr[1];
$consumed += 4;
}
if ($this->isCrTimeSet && $consumed < $this->length) {
$arr = unpack('V', fread($handle, 4));
$this->crTime = $arr[1];
}
}
}