public function packExt(Ext $ext)
{
$type = $ext->getType();
$data = $ext->getData();
$len = \strlen($data);
switch ($len) {
case 1:
return "Ô" . \chr($type) . $data;
case 2:
return "Õ" . \chr($type) . $data;
case 4:
return "Ö" . \chr($type) . $data;
case 8:
return "×" . \chr($type) . $data;
case 16:
return "Ø" . \chr($type) . $data;
}
if ($len <= 0xff) {
return "Ç" . \chr($len) . \chr($type) . $data;
}
if ($len <= 0xffff) {
return \pack('CnC', 0xc8, $len, $type) . $data;
}
return \pack('CNC', 0xc9, $len, $type) . $data;
}