Current Path : /home/ncdcgo/public_html/archive/dup-installer/classes/ |
Current File : /home/ncdcgo/public_html/archive/dup-installer/classes/class.http.php |
<?php defined("DUPXABSPATH") or die(""); /** * Http Class Utility */ class DUPX_HTTP { /** * Do an http post request with curl or php code * * @param string $url A URL to get. If $params is not null then all query strings will be removed. * @param string[] $params A valid key/pair combo $data = array('key1' => 'value1', 'key2' => 'value2'); * @param ?string[] $headers Optional header elements * * @return string|bool a string or FALSE on failure. */ public static function get($url, $params = array(), $headers = null) { //PHP GET if (!function_exists('curl_init')) { return self::php_get_post($url, $params, $headers = null, 'GET'); } //Remove query string if $params are passed $full_url = $url; if (count($params)) { $url = preg_replace('/\?.*/', '', $url); $full_url = $url . '?' . http_build_query($params); } $headers_on = isset($headers) && array_count_values($headers); $ch = curl_init(); // Return contents of transfer on curl_exec // Allow self-signed certs curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_URL, $full_url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, $headers_on); if ($headers_on) { curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); } $response = curl_exec($ch); curl_close($ch); return $response; } /** * Do an http post request with curl or php code * * @param string $url A URL to get. If $params is not null then all query strings will be removed. * @param string[] $params A valid key/pair combo $data = array('key1' => 'value1', 'key2' => 'value2'); * @param ?string[] $headers Optional header elements * @param string $method The method to use * * @return string */ private static function php_get_post($url, $params, $headers = null, $method = 'POST') { $full_url = $url; if ($method == 'GET' && count($params)) { $url = preg_replace('/\?.*/', '', $url); $full_url = $url . '?' . http_build_query($params); } $data = array( 'http' => array( 'method' => $method, 'content' => http_build_query($params), ), ); if ($headers !== null) { $data['http']['header'] = $headers; } $ctx = stream_context_create($data); $fp = @fopen($full_url, 'rb', false, $ctx); if (!$fp) { throw new Exception("Problem with $full_url"); } $response = @stream_get_contents($fp); if ($response === false) { throw new Exception("Problem reading data from $full_url"); } return $response; } }