<?php
/* 
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

if(!class_exists('DupArchiveHeaderU')) {
class DupArchiveHeaderU
{
    const MaxStandardHeaderFieldLength = 128;
    
    public static function readStandardHeaderField($archiveHandle, $ename)
    {
        $expectedStart = '<'.$ename.'>';
        $expectedEnd = '</'.$ename.'>';

        $startingElement = fread($archiveHandle, strlen($expectedStart));

        if($startingElement !== $expectedStart) {
            throw new Exception("Invalid starting element. Was expecting {$expectedStart} but got {$startingElement}");
        }

        //return SnapLibStreamU::streamGetLine($archiveHandle, self::MaxStandardHeaderFieldLength, $expectedEnd);

        $headerString = stream_get_line($archiveHandle, self::MaxStandardHeaderFieldLength, $expectedEnd);

        if ($headerString === false) {
            throw new Exception('Error reading line.');
        }

        return $headerString;
    }
}
}