Простая и полезная функция PHP http или HTTPS запроса c курл (CURL), для работы CURL должна быть установлена расширения PHP CURL



function http_request($url, $post, $ssl = false, $headers = '', $uagent = '') {
        
if (empty($url)) { return false; }

    $_post = Array(); 

        if (is_array($post)){ 
                foreach ($post as $name => $value){ 
                $_post[] = $name.'='.urlencode($value);
                } 
        }
        
        $ch = curl_init($url); 

        if ($ssl) {
                //если соединяемся с https 
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
                curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
        }
        
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
        curl_setopt($ch, CURLOPT_POST, 1); 
        curl_setopt($ch, CURLOPT_HEADER, 0);
        //curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
         
        if (is_array($post)) {
                curl_setopt($ch, CURLOPT_POSTFIELDS, join('&', $_post)); 
    } 
         
        if (is_array($headers)) {
                //если заданы какие-то заголовки для браузера 
                curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
        }
         
    if (!empty($uagent)){
                //если задан UserAgent 
            curl_setopt($ch, CURLOPT_USERAGENT, $uagent);
        }
         
        $result = curl_exec($ch); 
        if (curl_errno($ch) != 0 && empty($result)) { $result = false; } 
         
        curl_close($ch); 
        return $result; 
}