1
0
Fork 0

Merge pull request #6985 from nicolas-grekas/get-url-contents

Add RemoteFilesystem::getRemoteContents() extension point
pull/7006/head
Jordi Boggiano 2018-01-10 15:54:03 +01:00 committed by GitHub
commit 59fcb91912
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 17 additions and 1 deletions

View File

@ -297,7 +297,7 @@ class RemoteFilesystem
$errorMessage .= preg_replace('{^file_get_contents\(.*?\): }', '', $msg); $errorMessage .= preg_replace('{^file_get_contents\(.*?\): }', '', $msg);
}); });
try { try {
$result = file_get_contents($fileUrl, false, $ctx); list($http_response_header, $result) = $this->getRemoteContents($originUrl, $fileUrl, $ctx);
$contentLength = !empty($http_response_header[0]) ? $this->findHeaderValue($http_response_header, 'content-length') : null; $contentLength = !empty($http_response_header[0]) ? $this->findHeaderValue($http_response_header, 'content-length') : null;
if ($contentLength && Platform::strlen($result) < $contentLength) { if ($contentLength && Platform::strlen($result) < $contentLength) {
@ -538,6 +538,22 @@ class RemoteFilesystem
return $result; return $result;
} }
/**
* Get contents of remote URL.
*
* @param string $originUrl The origin URL
* @param string $fileUrl The file URL
* @param resource $context The stream context
*
* @return array The response headers and the contents
*/
protected function getRemoteContents($originUrl, $fileUrl, $context)
{
$contents = file_get_contents($fileUrl, false, $context);
return array($http_response_header, $contents);
}
/** /**
* Get notification action. * Get notification action.
* *