Heim > Backend-Entwicklung > PHP-Tutorial > PHP-Curl-Get-Post-Request-Nutzungsbeispiel zum Teilen

PHP-Curl-Get-Post-Request-Nutzungsbeispiel zum Teilen

黄舟
Freigeben: 2023-03-16 17:52:02
Original
3018 Leute haben es durchsucht

1. Zusammenfassung von CURL

Persönlich fasse ich die Curl-Anfrage in drei Schritten zusammen

1. Erstellen Sie ein Curl-Handle (curl_init) und legen Sie die Parameter fest (curl_setopt) (öffnen Sie den Kühlschrank). )

2. Führen Sie die Anfrage aus (curl_exec), verarbeiten Sie die zurückgegebenen Daten (stopfen Sie den Elefanten hinein)

3. Schließen Sie Curl (curl_close), geben Sie alle Ressourcen frei (schließen Sie den Kühlschrank)

Wenn der Code tatsächlich kompliziert aussieht, liegt die Komplexität möglicherweise in der Logik der Verarbeitung der zurückgegebenen Daten.

2. CURL_SETOPT

Wie der Name schon sagt, legt SetOption Parameter fest, die viele Parameter umfassen. Klicken Sie hier, um weitere Parameter anzuzeigen. allgemein Legen Sie UA, Cookie, https usw. fest


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

Wenn Sie den Header zurückgeben müssen, fügen Sie ihn selbst hinzu


curl_setopt($curl, CURLOPT_HEADER, 1);
Nach dem Login kopieren

Ermitteln Sie den zurückgegebenen Statuscode:


curl_getinfo(, CURLINFO_HTTP_CODE)
if(curl_getinfo($curl, CURLINFO_HTTP_CODE) == '200')
Nach dem Login kopieren

Die einfache Version der GET-Anfrage lautet wie folgt Es werden nur die grundlegendsten Attribute festgelegt:


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

Das Einrichten von UA, Cookie usw. ist etwas kompliziert. In https-Anfragen ist nur eine SSL-Zertifikatsüberprüfung erforderlich. aber nicht in http-Anfragen. Wenn Sie eine reguläre Adresse anfordern müssen, ähnlich wie https://example.com/?id=$i, ändern Sie einfach die for-Schleife.


<?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();?>
Nach dem Login kopieren

3. Trennen Sie den Header und den Text in der Antwort

Um zunächst die Header-Informationen anzuzeigen, Sie müssen es wie folgt einrichten. Natürlich gibt es andere Methoden, die ähnlich sind:


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

Vollständiger Code:


<?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();?>
Nach dem Login kopieren

4. POST-Anfrage

Die POST-Anfrage setzt einfach zwei weitere Parameter als die obige Get-Anfrage.

1. Hey, ich werde POST verwenden, um Daten zu übermitteln.

2. Der Inhalt der Daten, die ich VERÖFFENTLICHEE


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

Die einfache Version lautet wie folgt:


<?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);?>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonPHP-Curl-Get-Post-Request-Nutzungsbeispiel zum Teilen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage