• Модуль: dav
  • Путь к файлу: ~/bitrix/modules/dav/classes/general/webdav.php
  • Класс: CDavWebDav
  • Вызов: CDavWebDav::SearchIfHeaderConditionsToken
private function SearchIfHeaderConditionsToken($string, &$pos)
{
	while (in_array($string[$pos], [' ', 'n', 'r', 't'], true))
	{
		++$pos;
	}

	if (mb_strlen($string) <= $pos)
	{
		return false;
	}

	$c = $string[$pos++];

	switch ($c)
	{
		case "<":
			$pos2 = mb_strpos($string, ">", $pos);
			$uri = mb_substr($string, $pos, $pos2 - $pos);
			$pos = $pos2 + 1;
			return array("URI", $uri);

		case "[":
			if ($string[$pos] === "W")
			{
				$type = "ETAG_WEAK";
				$pos += 2;
			}
			else
			{
				$type = "ETAG_STRONG";
			}
			$pos2 = mb_strpos($string, "]", $pos);
			$etag = mb_substr($string, $pos + 1, $pos2 - $pos - 2);
			$pos = $pos2 + 1;
			return array($type, $etag);

		case "N":
			$pos += 2;
			return array("NOT", "Not");

		default:
			return array("CHAR", $c);
	}
}