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'
Wenn Sie den Header zurückgeben müssen, fügen Sie ihn selbst hinzu
curl_setopt($curl, CURLOPT_HEADER, 1);
Ermitteln Sie den zurückgegebenen Statuscode:
curl_getinfo(, CURLINFO_HTTP_CODE) if(curl_getinfo($curl, CURLINFO_HTTP_CODE) == '200')
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((); ?>
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 = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)'; const sURL = 'https://www.baidu.com'; const sCookie = 'fake if you want'; 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. 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);
Vollständiger Code:
<?php class getRequest { const sUA = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)'; const sURL = 'https://www.baidu.com'; const sCookie = 'fake if you want'; 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) == '200') { 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-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('user'=>'test'));
Die einfache Version lautet wie folgt:
<?php$curl = curl_init(); curl_setopt($curl, CURLOPT_URL, 'http://www.baidu.com'); curl_setopt($curl, CURLOPT_HEADER, 1); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_POST, 1);$aPostData = array( 'username' => 'test', .....); curl_setopt($curl, CURLOPT_POSTFIELDS, $aPostData);$sData = curl_exec($curl); curl_close($curl);var_dump($sData);?>
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!