• Модуль: dav
  • Путь к файлу: ~/bitrix/modules/dav/classes/general/icalendar.php
  • Класс: CDavICalendarProperty
  • Вызов: CDavICalendarProperty::InitializeFromString
public function InitializeFromString($prop)
{
	$pn = '[a-z0-9-]+';
	$pv = '(?:[^";:,]*|"[^"]*")';

	if (preg_match(sprintf('/^(%1$s(?:;%1$s=%2$s(?:,%2$s)*)*):(.+)$/i', $pn, $pv), $prop, $matches))
	{
		$propStart = $matches[1];
		$propEnd   = $matches[2];
	}
	else
	{
		$pos = mb_strpos($prop, ':');
		if ($pos === false)
		{
			$propStart = $prop;
			$propEnd = '';
		}
		else
		{
			$propStart = mb_substr($prop, 0, $pos);
			$propEnd = mb_substr($prop, $pos + 1);
		}
	}

	$propEnd = str_replace(array('\N', '\n'), "n", $propEnd);
	$this->content = preg_replace('/\\([,;\\])/', '$1', $propEnd);

	$arParams = explode(';', $propStart);
	$this->name = array_shift($arParams);
	$this->arParameters = array();
	foreach ($arParams as $val)
	{
		$pos = mb_strpos($val, '=');
		$name = mb_substr($val, 0, $pos);
		$value = mb_substr($val, $pos + 1);
		$this->arParameters[$name] = $value;
	}
}