mirror of
https://github.com/mosbth/cimage.git
synced 2025-08-03 14:47:47 +02:00
Prepare to test #98
This commit is contained in:
43
CHttpGet.php
43
CHttpGet.php
@@ -21,6 +21,33 @@ class CHttpGet
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Build an encoded url.
|
||||||
|
*
|
||||||
|
* @param string $baseUrl This is the original url which will be merged.
|
||||||
|
* @param string $merge Thse parts should be merged into the baseUrl,
|
||||||
|
* the format is as parse_url.
|
||||||
|
*
|
||||||
|
* @return string $url as the modified url.
|
||||||
|
*/
|
||||||
|
public function buildUrl($baseUrl, $merge)
|
||||||
|
{
|
||||||
|
$parts = parse_url($baseUrl);
|
||||||
|
$parts = array_merge($parts, $merge);
|
||||||
|
|
||||||
|
$url = $parts['scheme'];
|
||||||
|
$url .= "://";
|
||||||
|
$url .= $parts['host'];
|
||||||
|
$url .= isset($parts['port'])
|
||||||
|
? ":" . $parts['port']
|
||||||
|
: "" ;
|
||||||
|
$url .= $parts['path'];
|
||||||
|
|
||||||
|
return $url;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the url for the request.
|
* Set the url for the request.
|
||||||
*
|
*
|
||||||
@@ -30,6 +57,18 @@ class CHttpGet
|
|||||||
*/
|
*/
|
||||||
public function setUrl($url)
|
public function setUrl($url)
|
||||||
{
|
{
|
||||||
|
$parts = parse_url($url);
|
||||||
|
|
||||||
|
$path = "";
|
||||||
|
if (isset($parts['path'])) {
|
||||||
|
$pathParts = explode('/', $parts['path']);
|
||||||
|
unset($pathParts[0]);
|
||||||
|
foreach ($pathParts as $value) {
|
||||||
|
$path .= "/" . rawurlencode($value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$url = $this->buildUrl($url, array("path" => $path));
|
||||||
|
|
||||||
$this->request['url'] = $url;
|
$this->request['url'] = $url;
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
@@ -93,6 +132,8 @@ class CHttpGet
|
|||||||
*
|
*
|
||||||
* @param boolean $debug set to true to dump headers.
|
* @param boolean $debug set to true to dump headers.
|
||||||
*
|
*
|
||||||
|
* @throws Exception when curl fails to retrieve url.
|
||||||
|
*
|
||||||
* @return boolean
|
* @return boolean
|
||||||
*/
|
*/
|
||||||
public function doGet($debug = false)
|
public function doGet($debug = false)
|
||||||
@@ -115,7 +156,7 @@ class CHttpGet
|
|||||||
$response = curl_exec($ch);
|
$response = curl_exec($ch);
|
||||||
|
|
||||||
if (!$response) {
|
if (!$response) {
|
||||||
return false;
|
throw new Exception("Failed retrieving url, details follows: " . curl_error($ch));
|
||||||
}
|
}
|
||||||
|
|
||||||
$headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
|
$headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
|
||||||
|
@@ -147,7 +147,7 @@ class CRemoteImage
|
|||||||
*/
|
*/
|
||||||
public function setHeaderFields()
|
public function setHeaderFields()
|
||||||
{
|
{
|
||||||
$this->http->setHeader("User-Agent", "CImage/0.7.0 (PHP/". phpversion() . " cURL)");
|
$this->http->setHeader("User-Agent", "CImage/0.7.2 (PHP/". phpversion() . " cURL)");
|
||||||
$this->http->setHeader("Accept", "image/jpeg,image/png,image/gif");
|
$this->http->setHeader("Accept", "image/jpeg,image/png,image/gif");
|
||||||
|
|
||||||
if ($this->useCache) {
|
if ($this->useCache) {
|
||||||
@@ -226,6 +226,8 @@ class CRemoteImage
|
|||||||
*
|
*
|
||||||
* @param string $url a remote url.
|
* @param string $url a remote url.
|
||||||
*
|
*
|
||||||
|
* @throws Exception when status code does not match 200 or 304.
|
||||||
|
*
|
||||||
* @return string as path to downloaded file or false if failed.
|
* @return string as path to downloaded file or false if failed.
|
||||||
*/
|
*/
|
||||||
public function download($url)
|
public function download($url)
|
||||||
@@ -258,7 +260,7 @@ class CRemoteImage
|
|||||||
return $this->updateCacheDetails();
|
return $this->updateCacheDetails();
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
throw new Exception("Unknown statuscode when downloading remote image: " . $this->status);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user