sName = $sName; $this->sValue = $sValue; } public static function CreateFromParameterLine(string $sRawParam) : self { $oParameter = new self('', ''); return $oParameter->Parse($sRawParam); } public function Reset() : self { $this->sName = ''; $this->sValue = ''; return $this; } public function Name() : string { return $this->sName; } public function Value() : string { return $this->sValue; } public function Parse(string $sRawParam, string $sSeparator = '=') : self { $this->Reset(); $aParts = explode($sSeparator, $sRawParam, 2); $this->sName = trim(trim($aParts[0]), '"\''); if (2 === count($aParts)) { $this->sValue = trim(trim($aParts[1]), '"\''); } return $this; } public function ToString(bool $bConvertSpecialsName = false) : string { $sResult = ''; if (0 < strlen($this->sName)) { $sResult = $this->sName.'='; if ($bConvertSpecialsName && in_array(strtolower($this->sName), array( strtolower(Enumerations\Parameter::NAME), strtolower(Enumerations\Parameter::FILENAME) ))) { $sResult .= '"'.\MailSo\Base\Utils::EncodeUnencodedValue( \MailSo\Base\Enumerations\Encoding::BASE64_SHORT, $this->sValue).'"'; } else { $sResult .= '"'.$this->sValue.'"'; } } return $sResult; } }