Daan is sweet to Kelley and delegates himself TestCMS code reflection
[ssproject1617.git] / testcms-final-anon / system / classes / curl.php
1 <?php defined('IN_CMS') or die('No direct access allowed.');
2
3 class Curl {
4
5 private $session, $error, $info;
6
7 public function __construct() {
8 $this->session = curl_init();
9 }
10
11 public static function support() {
12 return function_exists('curl_init');
13 }
14
15 public function set_options($options) {
16 curl_setopt_array($this->session, $options);
17 }
18
19 public function get_error() {
20 return $this->error;
21 }
22
23 public function get_info() {
24 return $this->info;
25 }
26
27 public function send() {
28 if(($response = curl_exec($this->session)) === false) {
29 $this->error = curl_errno($this->session) . ': ' . curl_error($this->session);
30 }
31
32 $this->info = curl_getinfo($this->session);
33
34 return $response;
35 }
36
37 public function close() {
38 curl_close($this->session);
39 }
40
41 public static function post($url, $data = array(), $headers = array()) {
42 $session = new static;
43
44 $options = array(
45 CURLOPT_URL => $url,
46 CURLOPT_POST => true,
47 CURLOPT_POSTFIELDS => http_build_query($data),
48 CURLOPT_HEADER => false,
49 CURLOPT_RETURNTRANSFER => true
50 );
51
52 if(count($headers)) {
53 $options[CURLOPT_HTTPHEADER] = $headers;
54 }
55
56 $session->set_options($options);
57
58 $response = $session->send();
59
60 $session->close();
61
62 return $response;
63 }
64
65 public static function get($url, $headers = array()) {
66 $session = new static;
67
68 $options = array(
69 CURLOPT_URL => $url,
70 CURLOPT_HEADER => false,
71 CURLOPT_RETURNTRANSFER => true
72 );
73
74 if(count($headers)) {
75 $options[CURLOPT_HTTPHEADER] = $headers;
76 }
77
78 $session->set_options($options);
79
80 $response = $session->send();
81
82 $session->close();
83
84 return $response;
85 }
86
87 }