if (in_array(parse_url($url, PHP_URL_SCHEME), ['https', 'http'])) {
$options = [HttpClientOptions::VERIFY => true, HttpClientOptions::TIMEOUT => $xrd_timeout];
- $curlResult = DI::httpClient()->head($url, $options);
+ try {
+ $curlResult = DI::httpClient()->head($url, $options);
+ } catch (\Exception $e) {
+ return false;
+ }
// Workaround for systems that can't handle a HEAD request. Don't retry on timeouts.
if (!$curlResult->isSuccess() && ($curlResult->getReturnCode() >= 400) && !in_array($curlResult->getReturnCode(), [408, 504])) {
- $curlResult = DI::httpClient()->get($url, HttpClientAccept::DEFAULT, $options);
+ try {
+ $curlResult = DI::httpClient()->get($url, HttpClientAccept::DEFAULT, $options);
+ } catch (\Exception $e) {
+ return false;
+ }
}
if (!$curlResult->isSuccess()) {
$pair = $param . '=' . str_replace(' ', '+', $value);
$url = str_replace($pair, '', $url);
- // Third try: Maybey the url isn't encoded at all
+ // Third try: Maybe the url isn't encoded at all
$pair = $param . '=' . $value;
$url = str_replace($pair, '', $url);
*/
public static function addBasePath(string $url, string $basepath): string
{
+ $url = trim($url);
if (!empty(parse_url($url, PHP_URL_SCHEME)) || empty(parse_url($basepath, PHP_URL_SCHEME)) || empty($url) || empty(parse_url($url))) {
return $url;
}
* @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);
}
/**