function __construct() { $this->curl = new \EdwardStock\Curl\Curl(); $this->curl->setOption(CURLOPT_SSL_VERIFYPEER, false); $this->curl->setOption(CURLOPT_SSL_VERIFYHOST, false); }
public function get($urlMixed, $data = []) { $this->data = $data; if (is_array($urlMixed)) { $curlMulti = curl_multi_init(); $this->multiParent = true; $this->curls = []; foreach ($urlMixed as $url) { $curl = new Curl(); $curl->multiChild = true; $curl->setOption(CURLOPT_URL, $this->buildURL($url, $data), $curl->curl); $curl->setOption(CURLOPT_CUSTOMREQUEST, 'GET'); $curl->setOption(CURLOPT_HTTPGET, true); $this->call($this->beforeSendCallback, $curl); $this->curls[] = $curl; $curlMultiErrorCode = curl_multi_add_handle($curlMulti, $curl->curl); if (!($curlMultiErrorCode === CURLM_OK)) { throw new \ErrorException('cURL multi add handle error: ' . $curlMultiErrorCode); } } /** @var \edwardstock\curl\Curl $ch */ foreach ($this->curls as $ch) { foreach ($this->options as $key => $value) { $ch->setOption($key, $value); } } do { $status = curl_multi_exec($curlMulti, $active); } while ($status === CURLM_CALL_MULTI_PERFORM || $active); foreach ($this->curls as $ch) { $this->exec($ch); } } else { $this->setOption(CURLOPT_URL, $this->buildURL($urlMixed, $data)); $this->setOption(CURLOPT_CUSTOMREQUEST, 'GET'); $this->setOption(CURLOPT_HTTPGET, true); return $this->exec(); } return null; }