<?php
/**
- * @copyright Copyright (C) 2010-2023, the Friendica project
+ * @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
* @param string $url
*
* @return bool
+ * @deprecated since 2023.09, please use BaseUrl->isLocalUrl or BaseUrl->isLocalUri instead.
*/
public static function isLocalLink(string $url): bool
{
- return (strpos(Strings::normaliseLink($url), Strings::normaliseLink(DI::baseUrl())) !== false);
+ return DI::baseUrl()->isLocalUrl($url);
}
/**
$scheme = parse_url($url, PHP_URL_SCHEME);
return !empty($scheme) && in_array($scheme, ['http', 'https']) && parse_url($url, PHP_URL_HOST);
}
+
+ /**
+ * Creates an Uri object out of a given Uri string
+ *
+ * @param string|null $uri
+ * @return UriInterface|null
+ */
+ public static function createUriFromString(string $uri = null): ?UriInterface
+ {
+ if (empty($uri)) {
+ return null;
+ }
+
+ try {
+ return new Uri($uri);
+ } catch (\Exception $e) {
+ Logger::debug('Invalid URI', ['code' => $e->getCode(), 'message' => $e->getMessage(), 'uri' => $uri]);
+ return null;
+ }
+ }
}