當前位置: 首頁>>代碼示例>>PHP>>正文


PHP Utils::CustomTrim方法代碼示例

本文整理匯總了PHP中MailSo\Base\Utils::CustomTrim方法的典型用法代碼示例。如果您正苦於以下問題:PHP Utils::CustomTrim方法的具體用法?PHP Utils::CustomTrim怎麽用?PHP Utils::CustomTrim使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在MailSo\Base\Utils的用法示例。


在下文中一共展示了Utils::CustomTrim方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: Parse

 /**
  * @param string $sEmailAddress
  * @return \MailSo\Mime\Email
  *
  * @throws \MailSo\Base\Exceptions\InvalidArgumentException
  */
 public static function Parse($sEmailAddress)
 {
     if (!\MailSo\Base\Validator::NotEmptyString($sEmailAddress, true)) {
         throw new \MailSo\Base\Exceptions\InvalidArgumentException();
     }
     $sName = '';
     $sEmail = '';
     $sComment = '';
     $bInName = false;
     $bInAddress = false;
     $bInComment = false;
     $iStartIndex = 0;
     $iEndIndex = 0;
     $iCurrentIndex = 0;
     while ($iCurrentIndex < \strlen($sEmailAddress)) {
         switch ($sEmailAddress[$iCurrentIndex]) {
             //				case '\'':
             case '"':
                 //$sQuoteChar = $sEmailAddress{$iCurrentIndex};
                 if (!$bInName && !$bInAddress && !$bInComment) {
                     $bInName = true;
                     $iStartIndex = $iCurrentIndex;
                 } else {
                     if (!$bInAddress && !$bInComment) {
                         $iEndIndex = $iCurrentIndex;
                         $sName = \substr($sEmailAddress, $iStartIndex + 1, $iEndIndex - $iStartIndex - 1);
                         $sEmailAddress = \substr_replace($sEmailAddress, '', $iStartIndex, $iEndIndex - $iStartIndex + 1);
                         $iEndIndex = 0;
                         $iCurrentIndex = 0;
                         $iStartIndex = 0;
                         $bInName = false;
                     }
                 }
                 break;
             case '<':
                 if (!$bInName && !$bInAddress && !$bInComment) {
                     if ($iCurrentIndex > 0 && \strlen($sName) === 0) {
                         $sName = \substr($sEmailAddress, 0, $iCurrentIndex);
                     }
                     $bInAddress = true;
                     $iStartIndex = $iCurrentIndex;
                 }
                 break;
             case '>':
                 if ($bInAddress) {
                     $iEndIndex = $iCurrentIndex;
                     $sEmail = \substr($sEmailAddress, $iStartIndex + 1, $iEndIndex - $iStartIndex - 1);
                     $sEmailAddress = \substr_replace($sEmailAddress, '', $iStartIndex, $iEndIndex - $iStartIndex + 1);
                     $iEndIndex = 0;
                     $iCurrentIndex = 0;
                     $iStartIndex = 0;
                     $bInAddress = false;
                 }
                 break;
             case '(':
                 if (!$bInName && !$bInAddress && !$bInComment) {
                     $bInComment = true;
                     $iStartIndex = $iCurrentIndex;
                 }
                 break;
             case ')':
                 if ($bInComment) {
                     $iEndIndex = $iCurrentIndex;
                     $sComment = \substr($sEmailAddress, $iStartIndex + 1, $iEndIndex - $iStartIndex - 1);
                     $sEmailAddress = \substr_replace($sEmailAddress, '', $iStartIndex, $iEndIndex - $iStartIndex + 1);
                     $iEndIndex = 0;
                     $iCurrentIndex = 0;
                     $iStartIndex = 0;
                     $bInComment = false;
                 }
                 break;
             case '\\':
                 $iCurrentIndex++;
                 break;
         }
         $iCurrentIndex++;
     }
     if (\strlen($sEmail) === 0) {
         $aRegs = array('');
         if (\preg_match('/[^@\\s]+@\\S+/i', $sEmailAddress, $aRegs) && isset($aRegs[0])) {
             $sEmail = $aRegs[0];
         } else {
             $sName = $sEmailAddress;
         }
     }
     if (\strlen($sEmail) > 0 && \strlen($sName) == 0 && \strlen($sComment) == 0) {
         $sName = \str_replace($sEmail, '', $sEmailAddress);
     }
     $sEmail = \trim(\trim($sEmail), '<>');
     $sName = \MailSo\Base\Utils::CustomTrim(\trim($sName), '"');
     //standard trim removes more than necessary
     //$sName = \trim(\trim($sName), '"');
     $sName = \trim($sName, '\'');
     $sComment = \trim(\trim($sComment), '()');
//.........這裏部分代碼省略.........
開發者ID:afterlogic,項目名稱:mailso,代碼行數:101,代碼來源:Email.php


注:本文中的MailSo\Base\Utils::CustomTrim方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。