<?php
function http_code($code = NULL) {

    if ($code !== NULL) {

        switch ($code) {
            case 100: $text = 'Continue'; break;
            case 101: $text = 'Switching Protocols'; break;
            case 200: $text = 'OK'; break;
            case 201: $text = 'Created'; break;
            case 202: $text = 'Accepted'; break;
            case 203: $text = 'Non-Authoritative Information'; break;
            case 204: $text = 'No Content'; break;
            case 205: $text = 'Reset Content'; break;
            case 206: $text = 'Partial Content'; break;
            case 300: $text = 'Multiple Choices'; break;
            case 301: $text = 'Moved Permanently'; break;
            case 302: $text = 'Moved Temporarily'; break;
            case 303: $text = 'See Other'; break;
            case 304: $text = 'Not Modified'; break;
            case 305: $text = 'Use Proxy'; break;
            case 400: $text = 'Bad Request'; break;
            case 401: $text = 'Unauthorized'; break;
            case 402: $text = 'Payment Required'; break;
            case 403: $text = 'Forbidden'; break;
            case 404: $text = 'Not Found'; break;
            case 405: $text = 'Method Not Allowed'; break;
            case 406: $text = 'Not Acceptable'; break;
            case 407: $text = 'Proxy Authentication Required'; break;
            case 408: $text = 'Request Time-out'; break;
            case 409: $text = 'Conflict'; break;
            case 410: $text = 'Gone'; break;
            case 411: $text = 'Length Required'; break;
            case 412: $text = 'Precondition Failed'; break;
            case 413: $text = 'Request Entity Too Large'; break;
            case 414: $text = 'Request-URI Too Large'; break;
            case 415: $text = 'Unsupported Media Type'; break;
            case 500: $text = 'Internal Server Error'; break;
            case 501: $text = 'Not Implemented'; break;
            case 502: $text = 'Bad Gateway'; break;
            case 503: $text = 'Service Unavailable'; break;
            case 504: $text = 'Gateway Time-out'; break;
            case 505: $text = 'HTTP Version not supported'; break;
            default:
                exit('Unknown http status code "' . htmlentities($code) . '"');
                break;
        }

        $protocol = (isset($_SERVER['SERVER_PROTOCOL']) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0');

        header($protocol . ' ' . $code . ' ' . $text);

        $GLOBALS['http_response_code'] = $code;

    } else {

        $code = (isset($GLOBALS['http_response_code']) ? $GLOBALS['http_response_code'] : 200);

    }

    return $code;

}

function getQ_($url,$headers){
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_HEADER, false);
  
    curl_setopt($ch, CURLOPT_HTTPHEADER,$headers );
    $output = curl_exec($ch);
    curl_close($ch);
    $ara=json_decode($output, true);
    return $ara;

}
function getQ($url,$headers){
//return [$url];
    // Инициализация сеанса cURL
    $ch = curl_init();
    // Установка URL
    curl_setopt($ch, CURLOPT_URL, $url);
    // Установка CURLOPT_RETURNTRANSFER (вернуть ответ в виде строки)
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    // Выполнение запроса cURL
    //$output содержит полученную строку
    curl_setopt($ch, CURLOPT_HTTPHEADER,$headers );

    $output = curl_exec($ch);
  //  return $output;
    $http_code=curl_getinfo($ch,CURLINFO_RESPONSE_CODE);


    if(stristr($output,'Something went wrong')){
        return [];//отправляем пустой массив
    }

    if($http_code>=400 and $http_code<500){
         return [];//отправляем пустой массив
    }
    if($http_code>=500){
        return $http_code;
    }



    $ara=json_decode($output, true);
    // закрытие сеанса curl для освобождения системных ресурсов
    curl_close($ch);
    return $ara;

}

function getSSLPage($url,$post_data,$headers) {





    $ch = curl_init();
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_URL, $url);


        curl_setopt($ch, CURLOPT_HTTPHEADER,$headers );



    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    if(strlen(trim($post_data))>0){
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
    }

    curl_setopt ( $ch , CURLOPT_SSL_VERIFYPEER, 0 );
    curl_setopt ( $ch , CURLOPT_SSL_VERIFYHOST, 0 );

    $http_code=curl_getinfo($ch,CURLINFO_RESPONSE_CODE);


//$http_code=curl_getinfo($ch,CURLINFO_RESPONSE_CODE);
    $output = curl_exec($ch);

    curl_close($ch);


    if($http_code>=400 or $http_code>=500){
        return $http_code;
    }

    return $output;
}

