コード例 #1
0
 function __construct()
 {
     $this->curl = new \EdwardStock\Curl\Curl();
     $this->curl->setOption(CURLOPT_SSL_VERIFYPEER, false);
     $this->curl->setOption(CURLOPT_SSL_VERIFYHOST, false);
 }
コード例 #2
0
ファイル: Curl.php プロジェクト: edwardstock/php-curl-class
 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;
 }