diff --git a/src/Records/TypeDefinitions/TypeDefinitionManager.php b/src/Records/TypeDefinitions/TypeDefinitionManager.php index be4da0a..ef0df47 100644 --- a/src/Records/TypeDefinitions/TypeDefinitionManager.php +++ b/src/Records/TypeDefinitions/TypeDefinitionManager.php @@ -226,6 +226,7 @@ private function setDefinitions() ], ResourceTypes::TXT => [ // RFC 1035 'txtdata+' => Types::CHARACTER_STRING, + '__toString' => static function() { return \implode('', \func_get_args()); }, ], ResourceTypes::WKS => [ // RFC 1035 'address' => Types::IPV4_ADDRESS, diff --git a/src/Records/Types/DomainName.php b/src/Records/Types/DomainName.php index 5247c27..b01b6c5 100644 --- a/src/Records/Types/DomainName.php +++ b/src/Records/Types/DomainName.php @@ -57,7 +57,24 @@ public function __construct($value = null) */ public function setValue($value) { - $this->setLabels(\explode('.', (string)$value)); + + $labels = preg_split( + '~(? '.', + ] + ); + }, + $labels + ); + + $this->setLabels($labels); } /**