fz, $this->fn, $this->ff, $this->fp, ).($this->domain ? sprintf('@%s',$this->domain->name) : ''); case 'tftn': return sprintf('%d:%d/%d.%d', $this->tz, $this->tn, $this->tf, $this->tp, ).($this->domain ? sprintf('@%s',$this->domain->name) : ''); default: throw new \Exception('Unknown key: '.$key); } } /** * Determine if a line is a kludge line. * * @param string $kludge * @param string $string * @return string */ protected function kludge(string $kludge,string $string) { return (preg_match("/^{$kludge}/",$string)) ? chop(preg_replace("/^{$kludge}/",'',$string),"\r") : FALSE; } /** * This function creates our unpack header * * @param array $pack * @return string */ protected static function unpackheader(array $pack): string { return join('/', collect($pack) ->sortBy(function($k,$v) {return $k[0];}) ->transform(function($k,$v) {return $k[1].$v;}) ->values() ->toArray() ); } }