Revert "IHTTPResult::getContentType is now a string again"
This reverts commit 40b11442
This commit is contained in:
parent
88c95a352b
commit
40349bfdc4
9 changed files with 27 additions and 23 deletions
|
@ -427,7 +427,7 @@ class Photo
|
||||||
$contType = $ret->getContentType();
|
$contType = $ret->getContentType();
|
||||||
} else {
|
} else {
|
||||||
$img_str = '';
|
$img_str = '';
|
||||||
$contType = '';
|
$contType = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($quit_on_error && ($img_str == "")) {
|
if ($quit_on_error && ($img_str == "")) {
|
||||||
|
|
|
@ -1008,7 +1008,7 @@ class User
|
||||||
$contType = $curlResult->getContentType();
|
$contType = $curlResult->getContentType();
|
||||||
} else {
|
} else {
|
||||||
$img_str = '';
|
$img_str = '';
|
||||||
$contType = '';
|
$contType = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
$type = Images::getMimeTypeByData($img_str, $photo, $contType);
|
$type = Images::getMimeTypeByData($img_str, $photo, $contType);
|
||||||
|
|
|
@ -37,7 +37,7 @@ class CurlResult implements IHTTPResult
|
||||||
private $returnCode;
|
private $returnCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var string the content type of the Curl call
|
* @var string[] the content type of the Curl call
|
||||||
*/
|
*/
|
||||||
private $contentType;
|
private $contentType;
|
||||||
|
|
||||||
|
@ -223,9 +223,9 @@ class CurlResult implements IHTTPResult
|
||||||
private function checkInfo()
|
private function checkInfo()
|
||||||
{
|
{
|
||||||
if (isset($this->info['content_type'])) {
|
if (isset($this->info['content_type'])) {
|
||||||
$this->contentType = $this->info['content_type'];
|
$this->contentType = [$this->info['content_type']];
|
||||||
} else {
|
} else {
|
||||||
$this->contentType = '';
|
$this->contentType = [];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -88,7 +88,7 @@ class GuzzleResponse extends Response implements IHTTPResult, ResponseInterface
|
||||||
/** {@inheritDoc} */
|
/** {@inheritDoc} */
|
||||||
public function getContentType()
|
public function getContentType()
|
||||||
{
|
{
|
||||||
return implode($this->getHeader('Content-Type'));
|
return $this->getHeader('Content-Type');
|
||||||
}
|
}
|
||||||
|
|
||||||
/** {@inheritDoc} */
|
/** {@inheritDoc} */
|
||||||
|
|
|
@ -19,7 +19,7 @@ interface IHTTPResult
|
||||||
/**
|
/**
|
||||||
* Returns the Content Type
|
* Returns the Content Type
|
||||||
*
|
*
|
||||||
* @return string the Content Type
|
* @return string[] the Content Types
|
||||||
*/
|
*/
|
||||||
public function getContentType();
|
public function getContentType();
|
||||||
|
|
||||||
|
|
|
@ -429,7 +429,7 @@ class Probe
|
||||||
}
|
}
|
||||||
|
|
||||||
// If it isn't a HTML file then exit
|
// If it isn't a HTML file then exit
|
||||||
if (($curlResult->getContentType() != '') && !strstr(strtolower($curlResult->getContentType()), 'html')) {
|
if (!in_array('html', $curlResult->getContentType())) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -75,23 +75,25 @@ class Images
|
||||||
/**
|
/**
|
||||||
* Fetch image mimetype from the image data or guessing from the file name
|
* Fetch image mimetype from the image data or guessing from the file name
|
||||||
*
|
*
|
||||||
* @param string $image_data Image data
|
* @param string $image_data Image data
|
||||||
* @param string $filename File name (for guessing the type via the extension)
|
* @param string $filename File name (for guessing the type via the extension)
|
||||||
* @param string $mimeType possible mime type
|
* @param string[] $mimeTypes possible mime types
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
* @throws \Exception
|
* @throws \Exception
|
||||||
*/
|
*/
|
||||||
public static function getMimeTypeByData(string $image_data, string $filename = '', string $mimeType = '')
|
public static function getMimeTypeByData(string $image_data, string $filename = '', array $mimeTypes = [])
|
||||||
{
|
{
|
||||||
if (substr($mimeType, 0, 6) == 'image/') {
|
foreach ($mimeTypes as $mimeType) {
|
||||||
Logger::info('Using default mime type', ['filename' => $filename, 'mime' => $mimeType]);
|
if (substr($mimeType, 0, 6) == 'image/') {
|
||||||
return $mimeType;
|
Logger::info('Using default mime type', ['filename' => $filename, 'mime' => $mimeTypes]);
|
||||||
|
return $mimeType;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$image = @getimagesizefromstring($image_data);
|
$image = @getimagesizefromstring($image_data);
|
||||||
if (!empty($image['mime'])) {
|
if (!empty($image['mime'])) {
|
||||||
Logger::info('Mime type detected via data', ['filename' => $filename, 'default' => $mimeType, 'mime' => $image['mime']]);
|
Logger::info('Mime type detected via data', ['filename' => $filename, 'default' => $mimeTypes, 'mime' => $image['mime']]);
|
||||||
return $image['mime'];
|
return $image['mime'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -166,7 +166,7 @@ class ParseUrl
|
||||||
}
|
}
|
||||||
|
|
||||||
// If it isn't a HTML file then exit
|
// If it isn't a HTML file then exit
|
||||||
if (($curlResult->getContentType() != '') && !strstr(strtolower($curlResult->getContentType()), 'html')) {
|
if (!in_array('html', $curlResult->getContentType())) {
|
||||||
return $siteinfo;
|
return $siteinfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -198,8 +198,10 @@ class ParseUrl
|
||||||
$charset = '';
|
$charset = '';
|
||||||
// Look for a charset, first in headers
|
// Look for a charset, first in headers
|
||||||
// Expected form: Content-Type: text/html; charset=ISO-8859-4
|
// Expected form: Content-Type: text/html; charset=ISO-8859-4
|
||||||
if (preg_match('/charset=([a-z0-9-_.\/]+)/i', $curlResult->getContentType(), $matches)) {
|
foreach ($curlResult->getContentType() as $type) {
|
||||||
$charset = trim(trim(trim(array_pop($matches)), ';,'));
|
if (preg_match('/charset=([a-z0-9-_.\/]+)/i', $type, $matches)) {
|
||||||
|
$charset = trim(trim(trim(array_pop($matches)), ';,'));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Then in body that gets precedence
|
// Then in body that gets precedence
|
||||||
|
|
|
@ -68,7 +68,7 @@ class CurlResultTest extends TestCase
|
||||||
$this->assertFalse($curlResult->isRedirectUrl());
|
$this->assertFalse($curlResult->isRedirectUrl());
|
||||||
$this->assertSame($headerArray, $curlResult->getHeaders());
|
$this->assertSame($headerArray, $curlResult->getHeaders());
|
||||||
$this->assertSame($body, $curlResult->getBody());
|
$this->assertSame($body, $curlResult->getBody());
|
||||||
$this->assertSame('text/html; charset=utf-8', $curlResult->getContentType());
|
$this->assertSame(['text/html; charset=utf-8'], $curlResult->getContentType());
|
||||||
$this->assertSame('https://test.local', $curlResult->getUrl());
|
$this->assertSame('https://test.local', $curlResult->getUrl());
|
||||||
$this->assertSame('https://test.local', $curlResult->getRedirectUrl());
|
$this->assertSame('https://test.local', $curlResult->getRedirectUrl());
|
||||||
}
|
}
|
||||||
|
@ -97,7 +97,7 @@ class CurlResultTest extends TestCase
|
||||||
$this->assertTrue($curlResult->isRedirectUrl());
|
$this->assertTrue($curlResult->isRedirectUrl());
|
||||||
$this->assertSame($headerArray, $curlResult->getHeaders());
|
$this->assertSame($headerArray, $curlResult->getHeaders());
|
||||||
$this->assertSame($body, $curlResult->getBody());
|
$this->assertSame($body, $curlResult->getBody());
|
||||||
$this->assertSame('text/html; charset=utf-8', $curlResult->getContentType());
|
$this->assertSame(['text/html; charset=utf-8'], $curlResult->getContentType());
|
||||||
$this->assertSame('https://test.local/test/it', $curlResult->getUrl());
|
$this->assertSame('https://test.local/test/it', $curlResult->getUrl());
|
||||||
$this->assertSame('https://test.other/test/it', $curlResult->getRedirectUrl());
|
$this->assertSame('https://test.other/test/it', $curlResult->getRedirectUrl());
|
||||||
}
|
}
|
||||||
|
@ -124,7 +124,7 @@ class CurlResultTest extends TestCase
|
||||||
$this->assertFalse($curlResult->isRedirectUrl());
|
$this->assertFalse($curlResult->isRedirectUrl());
|
||||||
$this->assertSame($headerArray, $curlResult->getHeaders());
|
$this->assertSame($headerArray, $curlResult->getHeaders());
|
||||||
$this->assertSame($body, $curlResult->getBody());
|
$this->assertSame($body, $curlResult->getBody());
|
||||||
$this->assertSame('text/html; charset=utf-8', $curlResult->getContentType());
|
$this->assertSame(['text/html; charset=utf-8'], $curlResult->getContentType());
|
||||||
$this->assertSame('https://test.local/test/it', $curlResult->getRedirectUrl());
|
$this->assertSame('https://test.local/test/it', $curlResult->getRedirectUrl());
|
||||||
$this->assertSame('Tested error', $curlResult->getError());
|
$this->assertSame('Tested error', $curlResult->getError());
|
||||||
}
|
}
|
||||||
|
@ -152,7 +152,7 @@ class CurlResultTest extends TestCase
|
||||||
$this->assertTrue($curlResult->isRedirectUrl());
|
$this->assertTrue($curlResult->isRedirectUrl());
|
||||||
$this->assertSame($headerArray, $curlResult->getHeaders());
|
$this->assertSame($headerArray, $curlResult->getHeaders());
|
||||||
$this->assertSame($body, $curlResult->getBody());
|
$this->assertSame($body, $curlResult->getBody());
|
||||||
$this->assertSame('text/html; charset=utf-8', $curlResult->getContentType());
|
$this->assertSame(['text/html; charset=utf-8'], $curlResult->getContentType());
|
||||||
$this->assertSame('https://test.local/test/it?key=value', $curlResult->getUrl());
|
$this->assertSame('https://test.local/test/it?key=value', $curlResult->getUrl());
|
||||||
$this->assertSame('https://test.other/some/?key=value', $curlResult->getRedirectUrl());
|
$this->assertSame('https://test.other/some/?key=value', $curlResult->getRedirectUrl());
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue