Exemple #1
0
 /**
  * @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;
 }
Exemple #2
0
 /**
  * @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;
 }