>  기사  >  백엔드 개발  >  PHP 컬은 게시물 요청 사용 예 공유를 얻습니다.

PHP 컬은 게시물 요청 사용 예 공유를 얻습니다.

黄舟
黄舟원래의
2017-10-20 09:23:142968검색

1. CURL 요약

저는 개인적으로 컬 요청을 3단계로 요약합니다

1. 컬 핸들 생성(curl_init) 및 매개변수 설정(curl_setopt)(냉장고 열기)

2. 요청 실행(curl_exec) 3. 컬을 닫고(curl_close) 모든 리소스를 해제합니다(냉장고를 닫습니다)

실제로 코드가 복잡해 보인다면 복잡한 부분은 반환된 데이터를 처리하는 논리일 수 있습니다. . _ 2. CURL_SETOPT

생각해보면 setOption은 매개변수를 설정하며, 더 많은 매개변수가 있습니다. 일반적으로 사용되는 몇 가지 매개변수는 다음과 같습니다. 더 많은 매개변수를 보려면 여기를 클릭하세요. 공통 설정 UA, 쿠키, https 등이 있습니다.

bool curl_setopt          (   , int  ,  "User-Agent: ""Referer: " 禁止 cURL 验证对等证书(peer'

헤더 헤더를 반환해야 하는 경우 직접 추가하세요.


curl_setopt($curl, CURLOPT_HEADER, 1);

반환된 상태 코드를 확인하세요.


curl_getinfo(, CURLINFO_HTTP_CODE)
if(curl_getinfo($curl, CURLINFO_HTTP_CODE) == '200')

GET 요청의 간단한 버전은 다음과 같습니다. Baidu에 대한 요청을 예로 들어 가장 기본적인 속성만 설정합니다:


 =, CURLOPT_URL, 'http://www.baidu.com', CURLOPT_HEADER, 1, CURLOPT_RETURNTRANSFER, 1 = curl_exec(();
?>

UA, 쿠키 등을 설정하는 것이 약간 복잡합니다. https 요청에는 SSL 인증서 확인만 필요하지만 http 요청에는 필요하지 않습니다. https://example.com/?id=$i와 유사한 일반 주소를 요청해야 하는 경우 for 루프를 수정하면 됩니다.


<?php
class getRequest
{    
const sUA = &#39;Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)&#39;;    
const sURL = &#39;https://www.baidu.com&#39;;    
const sCookie = &#39;fake if you want&#39;;    
function vInitRequest()
    {        $curl = curl_init();

        curl_setopt($curl, CURLOPT_HEADER, self::sUA);
        curl_setopt($curl, CURLOPT_COOKIE, self::sCookie);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);        
        /*
         * ssl check,use for https url         
         */
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1);//        
        for ($iId = 1; $iId < 1000; $iId++) {
//            $sURL = self::sURL.$iId;
        curl_setopt($curl, CURLOPT_URL, self::sURL);        
        $this->sExecRequest($curl);//        }    }    function sExecRequest($curl)
    {        $sRet = curl_exec($curl);        print_r($sRet);        /**
         * handle your response
         * stripos or preg         */
        curl_close($curl);
    }
}$foo = new getRequest();$foo->vInitRequest();?>


3. 응답에서 헤더와 본문을 분리합니다.

먼저 표시할 헤더 정보를 설정해야 합니다. 물론 다음과 같은 설정으로 헤더와 본문을 가져올 수 있습니다. 유사한 다른 메소드

curl_setopt($curl, CURLOPT_HEADER, 1);list($sHeader, $sBody) = explode("\r\n\r\n", $sRet, 2);

전체 코드 :


<?php
class getRequest
{    
const sUA = &#39;Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)&#39;;    
const sURL = &#39;https://www.baidu.com&#39;;    
const sCookie = &#39;fake if you want&#39;;    
function vInitRequest()
    {        
    $curl = curl_init();        
    $i = 0;
        curl_setopt($curl, CURLOPT_HEADER, self::sUA);
        curl_setopt($curl, CURLOPT_COOKIE, self::sCookie);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($curl, CURLOPT_HEADER, 1);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1);
        curl_setopt($curl, CURLOPT_URL, self::sURL);        
        $this->sExecRequest($curl);
    }    function sExecRequest($curl)
    {        $sRet = curl_exec($curl);        
    // if (curl_getinfo($curl, CURLINFO_HTTP_CODE) == &#39;200&#39;) {
            list($sHeader, $sBody) = explode("\r\n\r\n", $sRet, 2);        
            // }
            print_r($sHeader);            
            print_r($sBody);        
            // curl_close($curl);    }
}$foo = new getRequest();$foo->vInitRequest();?>


4. POST 요청

POST 요청은 위의 Get 요청보다 두 개의 매개변수를 더 설정합니다.

1. 안녕하세요, POST를 사용하여 데이터를 제출하려고 합니다.

2. 내가 게시하는 데이터의 내용

curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, array(&#39;user&#39;=>&#39;test&#39;));

간단한 버전은 다음과 같습니다.


<?php$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, &#39;http://www.baidu.com&#39;);
curl_setopt($curl, CURLOPT_HEADER, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POST, 1);$aPostData = array(  &#39;username&#39; => &#39;test&#39;,
   .....);
curl_setopt($curl, CURLOPT_POSTFIELDS, $aPostData);$sData = curl_exec($curl);
curl_close($curl);var_dump($sData);?>

위 내용은 PHP 컬은 게시물 요청 사용 예 공유를 얻습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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