$param_query .= '&' . urlencode($param) . '=' . urlencode($value);
        }
        $sig = $this->signature($params);
        $uri = '/' . $this->version . '/' . join('/', $methods) . '/';
        $request_url = $uri . '?sig=' . $sig . $param_query;
        $curl_handle = curl_init();
        curl_setopt($curl_handle, CURLOPT_URL, $this->api_url . $request_url);
        curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
        curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
        $data = curl_exec($curl_handle);
        curl_close($curl_handle);
        return json_decode($data);
    }
    private function signature($params)
    {
        ksort($params);
        $param_string = '';
        foreach ($params as $param => $value) {
            $param_string .= $param . '=' . $value;
        }
        return md5($param_string . $this->api_secret);
    }
}
// Example usage
$api_key = '8955dfc608f1d008ed87e9cea0aa6fe2';
$api_secret = '82238657c11cbe8f8f960a4218f1d3c7';
//
$mp = new Mixpanel($api_key, $api_secret);
$data = $mp->request(array('export'), array("from_date" => "2013-01-01", "to_date" => "2015-09-10"));
//
var_dump($data);