X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FUtil%2FParseUrl.php;h=24be55cab931ced253b360a51070f93852dcb0d0;hb=17d49422b4f7b3d1ed06859f996876a85028d87b;hp=d65ec0bb5542cd56de2e7ba365d27d902ac94dae;hpb=d6c97dbde23c3aa71b8501888a8f8ffa3f5d5b86;p=friendica.git diff --git a/src/Util/ParseUrl.php b/src/Util/ParseUrl.php index d65ec0bb55..24be55cab9 100644 --- a/src/Util/ParseUrl.php +++ b/src/Util/ParseUrl.php @@ -1,6 +1,6 @@ head($url); + + // Workaround for systems that can't handle a HEAD request + if (!$curlResult->isSuccess() && ($curlResult->getReturnCode() == 405)) { + $curlResult = DI::httpClient()->get($url, [HttpClientOptions::CONTENT_LENGTH => 1000000]); + } + if (!$curlResult->isSuccess()) { return []; } $contenttype = $curlResult->getHeader('Content-Type')[0] ?? ''; if (empty($contenttype)) { - return []; + return ['application', 'octet-stream']; } return explode('/', current(explode(';', $contenttype))); @@ -216,6 +222,7 @@ class ParseUrl $curlResult = DI::httpClient()->get($url, [HttpClientOptions::CONTENT_LENGTH => 1000000]); if (!$curlResult->isSuccess() || empty($curlResult->getBody())) { + Logger::info('Empty body or error when fetching', ['url' => $url, 'success' => $curlResult->isSuccess(), 'code' => $curlResult->getReturnCode()]); return $siteinfo; } @@ -455,7 +462,7 @@ class ParseUrl $siteinfo['language'] = trim($meta_tag['content']); break; case 'og:type': - $siteinfo['type'] = trim($meta_tag['content']); + $siteinfo['pagetype'] = trim($meta_tag['content']); break; case 'twitter:description': $siteinfo['text'] = trim($meta_tag['content']);