/** * @param string $sUtfString * @param string $sReplaceOn = '' * * @return string */ public static function Utf8Clear($sUtfString, $sReplaceOn = '') { if ('' === $sUtfString) { return $sUtfString; } $sUtfString = \preg_replace(\MailSo\Base\Utils::$sValidUtf8Regexp, '$1', $sUtfString); $sUtfString = \preg_replace('/\\xE0[\\x80-\\x9F][\\x80-\\xBF]' . '|\\xEF\\xBF\\xBF' . '|\\xED[\\xA0-\\xBF][\\x80-\\xBF]/S', $sReplaceOn, $sUtfString); $sUtfString = \preg_replace('/\\xEF\\xBF\\xBD/', '?', $sUtfString); $sNewUtfString = false; if (false === $sNewUtfString && \MailSo\Base\Utils::IsMbStringSupported()) { $sNewUtfString = \MailSo\Base\Utils::MbConvertEncoding($sUtfString, 'UTF-8', 'UTF-8'); } if (false === $sNewUtfString && \MailSo\Base\Utils::IsIconvSupported()) { $sNewUtfString = \MailSo\Base\Utils::IconvConvertEncoding($sUtfString, 'UTF-8', 'UTF-8'); } if (false !== $sNewUtfString) { $sUtfString = $sNewUtfString; } return $sUtfString; }
/** * @param string $sUtfString * @param string $sReplaceOn = '' * * @return string */ public static function Utf8Clear($sUtfString, $sReplaceOn = '') { if ('' === $sUtfString) { return $sUtfString; } $sUtfString = \preg_replace('/[\\x00-\\x08\\x10\\x0B\\x0C\\x0E-\\x1F\\x7F]' . '|[\\x00-\\x7F][\\x80-\\xBF]+' . '|([\\xC0\\xC1]|[\\xF0-\\xFF])[\\x80-\\xBF]*' . '|[\\xC2-\\xDF]((?![\\x80-\\xBF])|[\\x80-\\xBF]{2,})' . '|[\\xE0-\\xEF](([\\x80-\\xBF](?![\\x80-\\xBF]))|(?![\\x80-\\xBF]{2})|[\\x80-\\xBF]{3,})/S', $sReplaceOn, $sUtfString); $sUtfString = \preg_replace('/\\xE0[\\x80-\\x9F][\\x80-\\xBF]' . '|\\xEF\\xBF\\xBF' . '|\\xED[\\xA0-\\xBF][\\x80-\\xBF]/S', $sReplaceOn, $sUtfString); $sUtfString = \preg_replace('/\\xEF\\xBF\\xBD/', '?', $sUtfString); $sNewUtfString = false; if (\MailSo\Base\Utils::IsIconvSupported()) { $sNewUtfString = \MailSo\Base\Utils::IconvConvertEncoding($sUtfString, 'UTF-8', 'UTF-8'); } else { if (\MailSo\Base\Utils::IsMbStringSupported()) { $sNewUtfString = \MailSo\Base\Utils::MbConvertEncoding($sUtfString, 'UTF-8', 'UTF-8'); } } if (false !== $sNewUtfString) { $sUtfString = $sNewUtfString; } return $sUtfString; }