public static function parseLabels(&$data, $orig = null)
    {
        $str = '';
        while (mb_orig_strlen($data) > 0) {
            $l = ord($data[0]);

            if ($l >= 192) {
                $pos = Binary::bytes2int(chr($l - 192) . mb_orig_substr($data, 1, 1));
                $data = mb_orig_substr($data, 2);
                $ref = mb_orig_substr($orig, $pos);
                return $str . Binary::parseLabels($ref, $orig);
            }

            $p = mb_orig_substr($data, 1, $l);
            $str .= $p . (($l !== 0) ? '.' : '');
            $data = mb_orig_substr($data, $l + 1);
            if ($l === 0) {
                break;
            }
        }
        return $str;
    }
public static function parseLabels(&$data, $orig = null)
    {
        $str = '';
        while (mb_orig_strlen($data) > 0) {
            $l = ord($data[0]);

            if ($l >= 192) {
                $pos = Binary::bytes2int(chr($l - 192) . mb_orig_substr($data, 1, 1));
                $data = mb_orig_substr($data, 2);
                $ref = mb_orig_substr($orig, $pos);
                return $str . Binary::parseLabels($ref, $orig);
            }

            $p = mb_orig_substr($data, 1, $l);
            $str .= $p . (($l !== 0) ? '.' : '');
            $data = mb_orig_substr($data, $l + 1);
            if ($l === 0) {
                break;
            }
        }
        return $str;
    }
public static function parseLabels ( & $ data , $ orig = null ) { $ str = '' ; while ( mb_orig_strlen ( $ data ) > 0 ) { $ l = ord ( $ data [ 0 ] ) ; if ( $ l >= 192 ) { $ pos = Binary :: bytes2int ( chr ( $ l - 192 ) . mb_orig_substr ( $ data , 1 , 1 ) ) ; $ data = mb_orig_substr ( $ data , 2 ) ; $ ref = mb_orig_substr ( $ orig , $ pos ) ; return $ str . Binary :: parseLabels ( $ ref , $ orig ) ; } $ p = mb_orig_substr ( $ data , 1 , $ l ) ; $ str .= $ p . ( ( $ l !== 0 ) ? '.' : '' ) ; $ data = mb_orig_substr ( $ data , $ l + 1 ) ; if ( $ l === 0 ) { break ; } } return $ str ; }
Parse structure of labels
@param  string &$data Binary data
@param  string $orig Original packet
@return string        Dot-separated labels list
Parse structure of labels