• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/server.php
  • Класс: BitrixMainServer
  • Вызов: Server::parseDigest
static function parseDigest($digest)
{
	$data = [];
	$parts = ['nonce' => 1, 'username' => 1, 'uri' => 1, 'response' => 1];
	$keys = implode('|', array_keys($parts));

	//from php help
	preg_match_all('@('.$keys.')=(?:(['"])([^2]+?)2|([^s,]+))@', $digest, $matches, PREG_SET_ORDER);

	foreach ($matches as $m)
	{
		$data[$m[1]] = ($m[3] ?: $m[4]);
		unset($parts[$m[1]]);
	}

	return ($parts? false : $data);
}