PHP Curl 로 데이터 변환 하기

PHP Curl 로 데이터 변환 하기
흐름
  • 머리 정보 수집
  • 요청 데이터 수집
  • 머리 정 보 를 CURL 머리 요청 형식 으로 변환
  • Curl 로 퍼 가기
  • HTTP 헤더 정보 수집
    
    function getAllHeaders() {
        $headers = [];
        foreach ($_SERVER as $name => $value) {
            if (substr($name, 0, 5) == 'HTTP_') {
                $headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;
            }
        }
        return $headers;
    }
    
    

    PHP 패 키 징 프로 토 콜 을 사용 하여 입력 데 이 터 를 가 져 옵 니 다.
    $content = file_get_contents('php://input')
    

    헤더 정 보 를 Curl 요청 형식 으로 변환 합 니 다.
    $headers = getAllHeaders();
    $header_joins = [];
    foreach ($headers as $k => $v) {
        if ($k == 'X-Pingplusplus-Signature' || $k == 'Content-Type')
        array_push($header_joins, $k . ': ' . $v);
    }
    

    Curl 로 리 트 윗 하기
    function post($url, $headers, $raw_data) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");  // POST 
        curl_setopt($ch, CURLOPT_POSTFIELDS, $raw_data);  // Post Data
        curl_setopt($ch, CURLOPT_URL, $url);//       URL
        curl_setopt($ch, CURLOPT_USERAGENT, $user_agent); //          
        @curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1 );  //       
        curl_setopt($ch, CURLOPT_TIMEOUT, 60);  //      
        curl_setopt($ch, CURLOPT_AUTOREFERER, 1 ); //     Referer
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //           
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); //     Headers
        $result = curl_exec($ch);
        curl_close($ch);
        return $result;
    }
    
    // $result = post($url, $headers, $raw_data);
    

    예시
     $value) {
            if (substr($name, 0, 5) == 'HTTP_') {
                $headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;
            }
        }
        return $headers;
    }
    
    $content = file_get_contents('php://input');
    
    $headers = getAllHeaders();
    $header_joins = [];
    foreach ($headers as $k => $v) {
        if ($k == 'X-Pingplusplus-Signature' || $k == 'Content-Type')
        array_push($header_joins, $k . ': ' . $v);
    }
    
     // print_r($header_joins);die();
    
    function post($url, $headers, $raw_data) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");  // POST 
        curl_setopt($ch, CURLOPT_POSTFIELDS, $raw_data);  // Post Data
        curl_setopt($ch, CURLOPT_URL, $url);//       URL
        curl_setopt($ch, CURLOPT_USERAGENT, $user_agent); //          
        @curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1 );  //       
        curl_setopt($ch, CURLOPT_TIMEOUT, 60);  //      
        curl_setopt($ch, CURLOPT_AUTOREFERER, 1 ); //     Referer
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //           
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); //     Headers
        $result = curl_exec($ch);
        curl_close($ch);
        return $result;
    }
    
    $result = post('http://rgjc6z4v2x.proxy.qqbrowser.cc/api/pingxx', $header_joins, $content);
    
    echo $result;
    

    좋은 웹페이지 즐겨찾기