if (is_null($text)) {
$curlResult = DI::httpRequest()->head($match[1], ['timeout' => DI::config()->get('system', 'xrd_timeout')]);
if ($curlResult->isSuccess()) {
- $mimetype = $curlResult->getHeader('Content-Type');
+ $mimetype = $curlResult->getHeader('Content-Type')[0] ?? '';
} else {
$mimetype = '';
}
$curlResult = DI::httpRequest()->head($match[1], ['timeout' => DI::config()->get('system', 'xrd_timeout')]);
if ($curlResult->isSuccess()) {
- $mimetype = $curlResult->getHeader('Content-Type');
+ $mimetype = $curlResult->getHeader('Content-Type')[0] ?? '';
} else {
$mimetype = '';
}
$curlResult = DI::httpRequest()->head($url, ['timeout' => $timeout]);
if ($curlResult->isSuccess()) {
if (empty($media['mimetype'])) {
- return $curlResult->getHeader('Content-Type');
+ return $curlResult->getHeader('Content-Type')[0] ?? '';
}
}
return '';
$curlResult = DI::httpRequest()->head($media['url'], ['timeout' => $timeout]);
if ($curlResult->isSuccess()) {
if (empty($media['mimetype'])) {
- $media['mimetype'] = $curlResult->getHeader('Content-Type');
+ $media['mimetype'] = $curlResult->getHeader('Content-Type')[0] ?? '';
}
if (empty($media['size'])) {
- $media['size'] = (int)$curlResult->getHeader('Content-Length');
+ $media['size'] = (int)$curlResult->getHeader('Content-Length')[0] ?? 0;
}
} else {
Logger::notice('Could not fetch head', ['media' => $media]);
{
return $this->isTimeout;
}
+
+ /// @todo - fix mismatching use of "getBody()" as string here and parent "getBody()" as streaminterface
+ public function getBody()
+ {
+ return parent::getBody()->getContents();
+ }
}
/**
* {@inheritDoc}
*/
- public function get(string $url, bool $binary = false, array $opts = [])
+ public function get(string $url, array $opts = [])
{
$this->profiler->startRecording('network');
$curlOptions[CURLOPT_IPRESOLVE] = CURL_IPRESOLVE_V4;
}
- if ($binary) {
- $curlOptions[CURLOPT_BINARYTRANSFER] = 1;
- }
-
$logger = $this->logger;
$onRedirect = function(
'referer' => true,
],
'on_headers' => $onHeaders,
- 'sink' => tempnam(get_temppath(), 'guzzle'),
'curl' => $curlOptions
]);
*/
private static function getHideStatus($url)
{
- $curlResult = DI::httpRequest()->get($url, false, ['content_length' => 1000000]);
+ $curlResult = DI::httpRequest()->get($url, ['content_length' => 1000000]);
if (!$curlResult->isSuccess()) {
return false;
}
- // If the file is too large then exit
- if (($curlResult->getInfo()['download_content_length'] ?? 0) > 1000000) {
- return false;
- }
-
// If it isn't a HTML file then exit
if (($curlResult->getContentType() != '') && !strstr(strtolower($curlResult->getContentType()), 'html')) {
return false;
return [];
}
- $contenttype = $curlResult->getHeader('Content-Type');
+ $contenttype = $curlResult->getHeader('Content-Type')[0] ?? '';
if (empty($contenttype)) {
return [];
}
return $siteinfo;
}
- $curlResult = DI::httpRequest()->get($url, false, ['content_length' => 1000000]);
+ $curlResult = DI::httpRequest()->get($url, ['content_length' => 1000000]);
if (!$curlResult->isSuccess() || empty($curlResult->getBody())) {
return $siteinfo;
}
$siteinfo['expires'] = DateTimeFormat::utc(self::DEFAULT_EXPIRATION_SUCCESS);
- // If the file is too large then exit
- if (($curlResult->getInfo()['download_content_length'] ?? 0) > 1000000) {
- return $siteinfo;
- }
-
- if ($cacheControlHeader = $curlResult->getHeader('Cache-Control')) {
+ if ($cacheControlHeader = $curlResult->getHeader('Cache-Control')[0] ?? '') {
if (preg_match('/max-age=([0-9]+)/i', $cacheControlHeader, $matches)) {
$maxAge = max(86400, (int)array_pop($matches));
$siteinfo['expires'] = DateTimeFormat::utc("now + $maxAge seconds");