forked from geocoder-php/Geocoder
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCurlHttpAdapter.php
More file actions
68 lines (54 loc) · 1.44 KB
/
Copy pathCurlHttpAdapter.php
File metadata and controls
68 lines (54 loc) · 1.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?php
/**
* This file is part of the Geocoder package.
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*
* @license MIT License
*/
namespace Geocoder\HttpAdapter;
use Geocoder\Exception\ExtensionNotLoadedException;
/**
* @author William Durand <william.durand1@gmail.com>
*/
class CurlHttpAdapter implements HttpAdapterInterface
{
private $timeout;
private $connectTimeout;
public function __construct($timeout = null, $connectTimeout = null)
{
$this->timeout = $timeout;
$this->connectTimeout = $connectTimeout;
}
/**
* {@inheritDoc}
*/
public function getContent($url)
{
if (!function_exists('curl_init')) {
throw new ExtensionNotLoadedException('cURL has to be enabled.');
}
$c = curl_init();
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_URL, $url);
if ($this->timeout) {
curl_setopt($c, CURLOPT_TIMEOUT, $this->timeout);
}
if ($this->connectTimeout) {
curl_setopt($c, CURLOPT_CONNECTTIMEOUT, $this->connectTimeout);
}
$content = curl_exec($c);
curl_close($c);
if (false === $content) {
$content = null;
}
return $content;
}
/**
* {@inheritDoc}
*/
public function getName()
{
return 'curl';
}
}