Issue 10019: Fix embedding of media objects
This commit is contained in:
@@ -51,6 +51,30 @@ class ParseUrl
|
||||
*/
|
||||
const MIN_DESC_COUNT = 100;
|
||||
|
||||
/**
|
||||
* Fetch the content type of the given url
|
||||
* @param string $url URL of the page
|
||||
* @return string content type
|
||||
*/
|
||||
public static function getContentType(string $url)
|
||||
{
|
||||
$curlResult = DI::httpRequest()->head($url);
|
||||
if (!$curlResult->isSuccess()) {
|
||||
return '';
|
||||
}
|
||||
|
||||
$contenttype = $curlResult->getHeader('Content-Type');
|
||||
if (empty($contenttype)) {
|
||||
return '';
|
||||
}
|
||||
|
||||
if (!preg_match('#(image|video|audio)/#i', $contenttype, $matches)) {
|
||||
return '';
|
||||
}
|
||||
|
||||
return array_pop($matches);
|
||||
}
|
||||
|
||||
/**
|
||||
* Search for chached embeddable data of an url otherwise fetch it
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user