• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/urlrewriter.php
  • Класс: BitrixMainUrlRewriter
  • Вызов: UrlRewriter::filterRules
static function filterRules(array $arUrlRewrite, array $arFilter)
{
	$arResultKeys = array();

	foreach ($arUrlRewrite as $keyRule => $arRule)
	{
		$isMatched = true;
		foreach ($arFilter as $keyFilter => $valueFilter)
		{
			$isNegative = false;
			if (mb_substr($keyFilter, 0, 1) === "!")
			{
				$isNegative = true;
				$keyFilter = mb_substr($keyFilter, 1);
			}

			if ($keyFilter === 'QUERY')
				$isMatchedTmp = preg_match($arRule["CONDITION"], $valueFilter);
			elseif ($keyFilter === 'CONDITION')
				$isMatchedTmp = ($arRule["CONDITION"] == $valueFilter);
			elseif ($keyFilter === 'ID')
				$isMatchedTmp = (isset($arRule["ID"]) && ($arRule["ID"] == $valueFilter));
			elseif ($keyFilter === 'PATH')
				$isMatchedTmp = ($arRule["PATH"] == $valueFilter);
			else
				throw new ArgumentException("arFilter");

			$isMatched = ($isNegative xor $isMatchedTmp);

			if (!$isMatched)
				break;
		}

		if ($isMatched)
			$arResultKeys[] = $keyRule;
	}

	return $arResultKeys;
}