• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/favorites.php
  • Класс: CBXFavUrls
  • Вызов: CBXFavUrls::Compare
static function Compare($url1, $url2, $arReqVals=array(), $arSkipVals=array())
{
	if($url1=='' && $url2 == '')
		return false;

	if(is_array($url1))
		$arUrl1 = $url1;
	elseif(is_string($url1))
		$arUrl1 = self::ParseDetail($url1);
	else
		return false;

	$arUrl2 = self::ParseDetail($url2);

	if(isset($arUrl1["path"]) && isset($arUrl2["path"]) && $arUrl1["path"] != $arUrl2["path"])
	{
		$urlPath1 = pathinfo($arUrl1["path"]);
		$urlPath2 = pathinfo($arUrl2["path"]);

		if(
			isset($urlPath1["dirname"])
			&& $urlPath1["dirname"] != '.'
			&& isset($urlPath2["dirname"])
			&& $urlPath2["dirname"] != '.'
			&& $urlPath1["dirname"] != $urlPath2["dirname"]
		)
		{
			return false;
		}

		if(isset($urlPath1["basename"]) && isset($urlPath2["basename"]) && $urlPath1["basename"] != $urlPath2["basename"])
			return false;
	}

	if(isset($arUrl1["host"]) && isset($arUrl2["host"]) && $arUrl1["host"]!=$arUrl2["host"])
		return false;

	if(isset($arUrl1["query"]) && isset($arUrl2["query"]) && $arUrl1["query"] == $arUrl2["query"])
		return true;

	if(is_array($arUrl1["ar_query"]) && is_array($arUrl2["ar_query"]))
	{
		foreach ($arUrl1["ar_query"] as $valName => $value)
		{
			if (!isset($arUrl2["ar_query"][$valName]) || $arUrl1["ar_query"][$valName] != $arUrl2["ar_query"][$valName])
			{
				if(!empty($arReqVals))
				{
					if(in_array($valName,$arReqVals))
						return false;

					continue;
				}
				if(!empty($arSkipVals))
				{
					if(in_array($valName,$arSkipVals))
						continue;

					return false;
				}

				return false;
			}
		}

		if(!empty($arReqVals))
		{
			foreach ($arReqVals as $valName => $value)
			{
				if(isset($arUrl2["ar_query"][$valName]))
				{
					if(!isset($arUrl1["ar_query"][$valName]))
						return false;

					if($arUrl1["ar_query"][$valName] != $arUrl2["ar_query"][$valName])
						return false;
				}
			}

		}
	}

	return true;
}