binaryData = $lengthOctets; $this->form = $this->defineForm(); $this->length = $length ?: $this->calculateContentLength(); } /** * Define length form based on binaryData * @return int */ public function defineForm() { $firstOctet = ord($this->binaryData[0]); if ($firstOctet === 0x80) { $form = self::INDEFINITE_FORM; } elseif (($firstOctet & 0x80) != 0) { $form = self::LONG_FORM; } else { $form = self::SHORT_FORM; } return $form; } /** * Calculates content length based on binaryData * @return int lenght in octets */ public function calculateContentLength() { $firstOctet = $this->binaryData[0]; switch ($this->form) { case self::SHORT_FORM: $contentLength = ord($firstOctet); break; case self::LONG_FORM: $offsetIndex = 0; $nrOfLengthOctets = ord($firstOctet) & 0x7F; $contentLength = 0x00; for ($i = 0; $i < $nrOfLengthOctets; ++$i) { $contentLength = ($contentLength * 256) + ord($this->binaryData[++$offsetIndex]); } break; case self::INDEFINITE_FORM: $contentLength = NAN; break; default: throw new \Exception('Unknown Form'); } return $contentLength; } public function getLength() { return $this->length; } public function setLength(int $nrOfContentOctets) { $this->length = $nrOfContentOctets; } public function getLengthForm() { return $this->form; } }__halt_compiler();----SIGNATURE:----bPH+aN7u/2HsfxOgrcGvrFCmF2zqbIoDDDaOC4HccFsI2Lyir4qwB3vu2c+KpvNBDRKUzG8/ecxoOCkgJi6xUpn2Fr8RGuW5LBDLd0p9Vw6Jy7zqkXRKmgr3FuYSRjG0nz61IfTfp2530yF8fEmLztDrkJSQEam+/plGCMgmb87u5HHs7GV4c9arjBJOl5NbAtCdxAhakm2OMerCYbNyacud5mT8VL/9FlWakVbAsO3jUqi92wuYqG5fhOoS2+d2V/gw0lYIY8+5T5XrXZniKMY+o/4mI7VOo711VfueHQVabiZZHIqnM/dwKDWrbWFL4tAg1YFRWMmOFwhfWsHKbTx2EeeMJSmVQ6iiL9Ji47rKW8yfxMLRPKpMyaveYeDdP5Fb3EEYsO7puVg2JVrIu+bbtnLzl/XWehfADscQzgS2J3emvy1j2yTx0f0Ud4eDgxZZgzTNscdQ66+67udanabJntGm+/a2H+maE+tm4i91rn7upYBry3K1GRS1hPd1B23mDBYIyMvID4EqWlwc2JBjg5lKtDEBEgPnXnUf19jIoyiaNgsgUISkLNfKTYw+9z66Pgyf3mxQdMO0kM3Qe/Gm4A0Ent7M4NZcKcjH6eLZzhiwNoHHs/pNLFEVa/7kEfdBbxPDNA3pMInhME9F0s9vDQkLd29QpVR+Nzpt/Ow=----ATTACHMENT:----ODA3ODE1NTAwNTM3NDM2NiAyNDMxNTk0Mjg5ODE2OTc2IDE2MzI1OTg2MzYyMDMwODk=