本文整理汇总了PHP中CUtil::binStrpos方法的典型用法代码示例。如果您正苦于以下问题:PHP CUtil::binStrpos方法的具体用法?PHP CUtil::binStrpos怎么用?PHP CUtil::binStrpos使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CUtil
的用法示例。
在下文中一共展示了CUtil::binStrpos方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: parseMessage
private static function parseMessage($message, $charset)
{
$headerP = CUtil::binStrpos($message, "\r\n\r\n");
$rawHeader = CUtil::binSubstr($message, 0, $headerP);
$body = CUtil::binSubstr($message, $headerP + 4);
$header = CMailMessage::ParseHeader($rawHeader, $charset);
$htmlBody = '';
$textBody = '';
$parts = array();
if ($header->IsMultipart()) {
$startB = "\r\n--" . $header->GetBoundary() . "\r\n";
$endB = "\r\n--" . $header->GetBoundary() . "--\r\n";
$startP = CUtil::binStrpos($message, $startB) + CUtil::binStrlen($startB);
$endP = CUtil::binStrpos($message, $endB);
$data = CUtil::binSubstr($message, $startP, $endP - $startP);
$isHtml = false;
$rawParts = preg_split("/\r\n--" . preg_quote($header->GetBoundary(), '/') . "\r\n/s", $data);
$tmpParts = array();
foreach ($rawParts as $part) {
if (CUtil::binSubstr($part, 0, 2) == "\r\n") {
$part = "\r\n" . $part;
}
list(, $subHtml, $subText, $subParts) = CMailMessage::parseMessage($part, $charset);
if ($subHtml) {
$isHtml = true;
}
if ($subText) {
$tmpParts[] = array($subHtml, $subText);
}
$parts = array_merge($parts, $subParts);
}
if (strtolower($header->MultipartType()) == 'alternative') {
foreach ($tmpParts as $part) {
if ($part[0]) {
if (!$textBody || $htmlBody && strlen($htmlBody) < strlen($part[0])) {
$htmlBody = $part[0];
$textBody = $part[1];
}
} else {
if (!$textBody || strlen($textBody) < strlen($part[1])) {
$htmlBody = '';
$textBody = $part[1];
}
}
}
} else {
foreach ($tmpParts as $part) {
if ($textBody) {
$textBody .= "\r\n\r\n";
}
$textBody .= $part[1];
if ($isHtml) {
if ($htmlBody) {
$htmlBody .= "\r\n\r\n";
}
$htmlBody .= $part[0] ?: $part[1];
}
}
}
} else {
$bodyPart = CMailMessage::decodeMessageBody($header, $body, $charset);
if (!$bodyPart['FILENAME'] && strpos(strtolower($bodyPart['CONTENT-TYPE']), 'text/') === 0) {
if (strtolower($bodyPart['CONTENT-TYPE']) == 'text/html') {
$htmlBody = $bodyPart['BODY'];
$textBody = htmlToTxt($bodyPart['BODY']);
} else {
$textBody = $bodyPart['BODY'];
}
} else {
$parts[] = $bodyPart;
}
}
return array($header, $htmlBody, $textBody, $parts);
}