public function decode($input)
    {
        $input = strtolower($input);
        $parts = explode('.', $input);
        foreach ($parts as &$part) {
            $length = strlen($part);
            if ($length > 63 || $length < 1) {
                throw new LabelOutOfBoundsException(sprintf('The length of any one label is limited to between 1 and 63 octets, but %s given.', $length));
            }
            if (strpos($part, static::PREFIX) !== 0) {
                continue;
            }

            $part = substr($part, strlen(static::PREFIX));
            $part = $this->decodePart($part);
        }
        $output = implode('.', $parts);
        $length = strlen($output);
        if ($length > 255) {
            throw new DomainOutOfBoundsException(sprintf('A full domain name is limited to 255 octets (including the separators), %s given.', $length));
        }

        return $output;
    }
public function decode($input)
    {
        $input = strtolower($input);
        $parts = explode('.', $input);
        foreach ($parts as &$part) {
            $length = strlen($part);
            if ($length > 63 || $length < 1) {
                throw new LabelOutOfBoundsException(sprintf('The length of any one label is limited to between 1 and 63 octets, but %s given.', $length));
            }
            if (strpos($part, static::PREFIX) !== 0) {
                continue;
            }

            $part = substr($part, strlen(static::PREFIX));
            $part = $this->decodePart($part);
        }
        $output = implode('.', $parts);
        $length = strlen($output);
        if ($length > 255) {
            throw new DomainOutOfBoundsException(sprintf('A full domain name is limited to 255 octets (including the separators), %s given.', $length));
        }

        return $output;
    }
public function decode ( $ input ) { $ input = strtolower ( $ input ) ; $ parts = explode ( '.' , $ input ) ; foreach ( $ parts as & $ part ) { $ length = strlen ( $ part ) ; if ( $ length > 63 || $ length < 1 ) { throw new LabelOutOfBoundsException ( sprintf ( 'The length of any one label is limited to between 1 and 63 octets, but %s given.' , $ length ) ) ; } if ( strpos ( $ part , static :: PREFIX ) !== 0 ) { continue ; } $ part = substr ( $ part , strlen ( static :: PREFIX ) ) ; $ part = $ this -> decodePart ( $ part ) ; } $ output = implode ( '.' , $ parts ) ; $ length = strlen ( $ output ) ; if ( $ length > 255 ) { throw new DomainOutOfBoundsException ( sprintf ( 'A full domain name is limited to 255 octets (including the separators), %s given.' , $ length ) ) ; } return $ output ; }
Decode a Punycode domain name to its Unicode counterpart

@param string $input Domain name in Punycode
@return string Unicode domain name
Decode a Punycode domain name to its Unicode counterpart