コード例 #1
0
ファイル: Curl.php プロジェクト: eggbe/helpers
 /**
  * Send get request and return result.
  * @param string $url
  * @param array $Params
  * @param array $Headers
  * @param int $flags
  * @return string
  * @throws /Exception
  */
 public static final function get($url, array $Params = [], array $Headers = [], $flags = 0b0)
 {
     $Curl = curl_init();
     if (preg_match('/^(.*):([0-9]+)$/', $url, $Macth) > 0) {
         curl_setopt($Curl, CURLOPT_PORT, $Macth[2]);
         $url = $Macth[1];
     }
     if (count($Params) > 0) {
         $url .= '?' . http_build_query($Params, '', '&', PHP_QUERY_RFC3986);
     }
     if (count($Headers) > 0) {
         curl_setopt($Curl, CURLOPT_HTTPHEADER, Arr::pack($Headers, ': '));
     }
     curl_setopt($Curl, CURLOPT_URL, $url);
     curl_setopt($Curl, CURLOPT_RETURNTRANSFER, true);
     curl_setopt($Curl, CURLOPT_SSL_VERIFYPEER, true);
     curl_setopt($Curl, CURLOPT_SSL_VERIFYHOST, 2);
     if (self::F_RETURN_HEADERS & $flags) {
         curl_setopt($Curl, CURLOPT_HEADER, true);
     }
     if (($Response = curl_exec($Curl)) === false) {
         $Exception = new \Exception(curl_error($Curl), curl_errno($Curl));
         curl_close($Curl);
         throw $Exception;
     }
     curl_close($Curl);
     return $Response;
 }