%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/modules/mail/lib/helper/mailbox/ |
| Current File : /home/bitrix/www/bitrix/modules/mail/lib/helper/mailbox/responseparser.php |
<?php
namespace Bitrix\Mail\Helper\Mailbox;
class ResponseParser
{
public function getOldToNewUidsMap($copyUid)
{
$uIds = [];
$dirUidValidity = '';
if ($responseLine = stristr($copyUid, 'COPYUID'))
{
$data = explode(' ', stristr($copyUid, 'COPYUID'));
if (isset($data[1]) && isset($data[2]) && isset($data[3]))
{
$dirUidValidity = $data[1];
$idsFrom = $this->getIdsSet($data[2]);
$idsTo = $this->getIdsSet(str_replace(']', '', $data[3]));
$uIds = array_combine($idsFrom, $idsTo);
}
}
return [
'uids' => $uIds,
'dirUid' => $dirUidValidity,
];
}
private function getIdsSet($line)
{
$idsFrom = [];
$idsFromParsed = explode(',', $line);
foreach ($idsFromParsed as $_index => $_idFrom)
{
$sequence = explode(':', $_idFrom);
if (count($sequence) == 2)
{
$idsFrom = array_merge($idsFrom, range(min($sequence[0], $sequence[1]), max($sequence[0], $sequence[1]), 1));
}
elseif (count($sequence) == 1)
{
$idsFrom[] = intval($sequence[0]);
}
}
return $idsFrom;
}
}