• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/urlpreview/urlpreview.php
  • Класс: BitrixMainUrlPreviewUrlPreview
  • Вызов: UrlPreview::fetchUrlMetadata
static function fetchUrlMetadata($url)
{
	$fullUrl = static::unfoldShortLink($url);
	$uriParser = new Uri($fullUrl);
	if (static::isUrlLocal($uriParser))
	{
		if ($routeRecord = Router::dispatch($uriParser))
		{
			$metadata = array(
				'URL' => $url,
				'TYPE' => UrlMetadataTable::TYPE_DYNAMIC,
			);
		}
	}
	else
	{
		$metadataRemote = static::getRemoteUrlMetadata($uriParser);
		if (is_array($metadataRemote) && !empty($metadataRemote))
		{
			$metadata = array(
				'URL' => $url,
				'TYPE' => $metadataRemote['TYPE'] ?? UrlMetadataTable::TYPE_STATIC,
				'TITLE' => $metadataRemote['TITLE'] ?? '',
				'DESCRIPTION' => $metadataRemote['DESCRIPTION'] ?? '',
				'IMAGE_ID' => $metadataRemote['IMAGE_ID'] ?? null,
				'IMAGE' => $metadataRemote['IMAGE'] ?? null,
				'EMBED' => $metadataRemote['EMBED'] ?? null,
				'EXTRA' => $metadataRemote['EXTRA'] ?? null,
				'DATE_EXPIRE' => $metadataRemote['DATE_EXPIRE'] ?? null,
			);
		}
	}

	if (isset($metadata['TYPE']))
	{
		return $metadata;
	}
	return false;
}