>백엔드 개발 >PHP 튜토리얼 >cURL을 사용하여 HTTPS 요청을 처리하도록 PHP `get_web_page` 함수를 어떻게 수정합니까?

cURL을 사용하여 HTTPS 요청을 처리하도록 PHP `get_web_page` 함수를 어떻게 수정합니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-16 18:53:10173검색

How Can I Modify My PHP `get_web_page` Function to Handle HTTPS Requests Using cURL?

PHP CURL 및 HTTPS

이 문서는 CURL을 사용하여 PHP에서 HTTPS 요청에 대한 get_web_page 함수를 구현하는 문제를 해결하는 것을 목표로 합니다.

제공된 기능은 HTTP 요청을 완벽하게 처리합니다. 그러나 HTTPS 연결을 처리할 때 어려움에 직면합니다. 이 문제를 해결하기 위해 우리는 함수에 필수적인 수정 사항을 통합할 것입니다.

옵션 배열에 다음 줄을 추가하여

curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false)

CURL에 SSL 인증서 확인을 비활성화하도록 지시합니다. 이는 빠른 해결 방법이지만 중간자 공격에 대한 취약성을 증가시킵니다.

또는 이 수정 사항을 함수에 직접 포함할 수도 있습니다.

/**
 * Get a web file (HTML, XHTML, XML, image, etc.) from a URL.  Return an
 * array containing the HTTP server response header fields and content.
 */
function get_web_page( $url )
{
    $options = array(
        CURLOPT_RETURNTRANSFER => true,     // return web page
        CURLOPT_HEADER         => false,    // don't return headers
        CURLOPT_FOLLOWLOCATION => true,     // follow redirects
        CURLOPT_ENCODING       => "",       // handle all encodings
        CURLOPT_USERAGENT      => "spider", // who am i
        CURLOPT_AUTOREFERER    => true,     // set referer on redirect
        CURLOPT_CONNECTTIMEOUT => 120,      // timeout on connect
        CURLOPT_TIMEOUT        => 120,      // timeout on response
        CURLOPT_MAXREDIRS      => 10,       // stop after 10 redirects
        CURLOPT_SSL_VERIFYPEER => false     // Disabled SSL Cert checks
    );

    $ch      = curl_init( $url );
    curl_setopt_array( $ch, $options );
    $content = curl_exec( $ch );
    $err     = curl_errno( $ch );
    $errmsg  = curl_error( $ch );
    $header  = curl_getinfo( $ch );
    curl_close( $ch );

    $header['errno']   = $err;
    $header['errmsg']  = $errmsg;
    $header['content'] = $content;
    return $header;
}

이 수정을 통해 get_web_page 함수는 HTTP 및 HTTPS 요청을 모두 효과적으로 처리합니다.

위 내용은 cURL을 사용하여 HTTPS 요청을 처리하도록 PHP `get_web_page` 함수를 어떻게 수정합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.