PHPDaemon\Utils\Binary::parseLabels PHP Method

parseLabels() public static method

Parse structure of labels
public static parseLabels ( &$data, string $orig = null ) : string
$orig string Original packet
return string Dot-separated labels list
    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;
    }

Usage Example

Esempio n. 1
0
 /**
  * Parse structure of labels
  * @param  string &$data Binary data
  * @param  string $orig  Original packet
  * @return string        Dot-separated labels list
  */
 public static function parseLabels(&$data, $orig = null)
 {
     $str = '';
     while (strlen($data) > 0) {
         $l = ord($data[0]);
         if ($l >= 192) {
             $pos = Binary::bytes2int(chr($l - 192) . binarySubstr($data, 1, 1));
             $data = binarySubstr($data, 2);
             $ref = binarySubstr($orig, $pos);
             return $str . Binary::parseLabels($ref);
         }
         $p = substr($data, 1, $l);
         $str .= $p . ($l !== 0 ? '.' : '');
         $data = substr($data, $l + 1);
         if ($l === 0) {
             break;
         }
     }
     return $str;
 }
All Usage Examples Of PHPDaemon\Utils\Binary::parseLabels