Heim >Web-Frontend >js-Tutorial >Mehrere klassische Anwendungsbeispiele von CURL in PHP_Javascript-Kenntnissen

Mehrere klassische Anwendungsbeispiele von CURL in PHP_Javascript-Kenntnissen

WBOY
WBOYOriginal
2016-05-16 16:18:221534Durchsuche

1. Grundlegende Schritte der cURL-Anfrage:

(1)Initialisierung
(2) Legen Sie Optionen fest, einschließlich URL
(3) HTML-Dokumentinhalt ausführen und abrufen
(4) cURL-Handle

loslassen

Code kopieren Der Code lautet wie folgt:

//1. Initialisierung
$ch = curl_init();

//2. Optionen festlegen, einschließlich URL
curl_setopt($ch, CURLOPT_URL, "http://www.cnblogs.com/it-cen/");

//Die von curl_exec() erhaltenen Informationen in Form eines Dateistreams zurückgeben, anstatt sie direkt auszugeben
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

//Die Header-Dateiinformationen werden beim Start von
als Datenstrom ausgegeben curl_setopt($ch, CURLOPT_HEADER, 1);

//3. Den Inhalt des HTML-Dokuments ausführen und abrufen
curl_exec($ch);

//4. Griff loslassen
curl_close($ch);

echo $ch;

?>

Hinweis: Der zweite Schritt ist der wichtigste, nämlich die Funktion „curl_setopt()“

Wir können eine Anweisung hinzufügen, um Fehler zu überprüfen. Beachten Sie, dass hier „===false“ verwendet wird, um zwischen leerer Ausgabe und dem booleschen Wert false zu unterscheiden

Code kopieren Der Code lautet wie folgt:

$output = curl_exec($ch);

If ($output === false) {
              echo "cURL Error:".curl_error($ch);
}

Die Funktion „curl_getinfo()“ gibt Informationen zu dieser Anfrage zurück, nachdem cURL ausgeführt wurde, was für das Debuggen und die Fehlerbehebung nützlich ist:

Code kopieren Der Code lautet wie folgt:

curl_exec($ch);
$info = curl_getinfo($ch);
echo '
';<br>
          print_r($info);                                                      
echo '
';

Zurückgegebene Daten


Array
(
[url] => http://www.cnblogs.com/it-cen/
[content_type] => text/html; [http_code] => 200
[header_size] => 312
[request_size] => 61
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 0,172
[namelookup_time] => 0,016
[connect_time] => 0,063
[pretransfer_time] => 0,063
[size_upload] => 0
[size_download] => 14658   //Angeforderte Datengröße
[speed_download] => 85220 
[speed_upload] => 0
[download_content_length] => 14658
[upload_content_length] => 0
[starttransfer_time] => 0,125
[redirect_time] => 0
[certinfo] => Array
(
)

[redirect_url] => )




2. Diese Informationen sind beim Debuggen sehr nützlich.
Wenn cURL gecrawlt wird, sind die gecrawlten Daten möglicherweise aus Netzwerk- und anderen Gründen unvollständig berechnet die Dateigröße und vergleicht sie dann mit der von curl_getinfo() ermittelten Größe. Wenn die Größen gleich sind, gilt der Download als korrekt, andernfalls wird der Download wiederholt.

Schauen wir uns ein Beispiel für die Aufnahme eines Bildes an:


Code kopieren

Der Code lautet wie folgt:

header("Content-Type: image/png");

//1. Initialisierung
$ch = curl_init();

//2. Optionen festlegen, einschließlich URL
curl_setopt($ch, , CURLOPT_URL, "http://img04.taobaocdn.com/tfscom/TB1omaTHXXXXXajXVXXtKXbFXXX.png");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);

//3. Inhalte ausführen und abrufen
$res = curl_exec($ch);

//Informationen erhalten
$info = curl_getinfo($ch);

//4. Ressourcen freigeben
curl_close($ch);

file_put_contents("d:/aa.png", $res);

$size = filesize("d:/aa.png");

if ($size != $info['size_download']) {
echo „Die heruntergeladenen Daten sind unvollständig, bitte erneut herunterladen“;
} sonst {
             echo „Daten herunterladen ist abgeschlossen“;
}


?>

3. Verwenden Sie die POST-Methode, um Daten in cURL zu senden

Code kopieren Der Code lautet wie folgt:

$ch = curl_init();

$data = array('name'=>'kelly', 'age'=>27, 'sex'=>1);

curl_setopt($ch, CURLOPT_URL, "http://localhost.post.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

//Auf Posten einstellen
curl_setopt($ch, CURLOPT_POST, 1);
//Füge
zur Post-Variablen hinzu curl_setopt($ch, CURLOPT_POSTFIELDS,$data);

$res = curl_exec($ch);

curl_close($ch);

echo $res;


?>

Verwenden Sie diese Methode, um das Hinterlassen einer Nachricht zu simulieren, oder Sie können sich auf einen Wasserfüllroboter setzen. Die Idee ist die gleiche

4. Laden Sie Dateien mit cURL hoch

Code kopieren Der Code lautet wie folgt:

//Hochgeladene Daten anfordern
$data = array('name'=>'beauty', "upload"=>"@a.zip");

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "http://127.0.0.1/Socket/upload_file.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

$res = curl_exec($ch);

curl_close($ch);

echo $res;

?>

Hinweis: Wenn Sie eine Datei senden, stellen Sie dem Dateinamen ein @ voran und verwenden Sie den vollständigen Pfad

5. cURL-Einstellungselemente

Tatsächlich verfügt cURL über viele Konfigurationsoptionen. Sie werden über setopt() festgelegt. Ich hoffe, dass dies für die Leser hilfreich ist Verwenden Sie in Zukunft cURL. Hilfe:


CURLOPT_AUTOREFERER: Bei der Weiterleitung basierend auf dem Standort werden automatisch die Referrer-Informationen im Header

festgelegt

CURLOPT_COOKIESESSION: Wenn diese Option aktiviert ist, leitet cURL ein Sitzungscookie streng weiter und ignoriert andere Cookies

CURLOPT_HEADER: Geben Sie die Header-Dateiinformationen als Datenstrom aus

CURLOPT_INFILESIZE: Legen Sie die Größe der hochgeladenen Datei in Bytes fest

CURLOPT_MAXCONNECTS: Maximale Anzahl zulässiger Verbindungen

CURLOPT_MAXREDIRS: Geben Sie die maximale Anzahl von HTTP-Weiterleitungen an

CURLOPT_COOKIE: Legen Sie den Inhalt des „Cookie:“-Teils der HTTP-Anfrage fest. Auf mehrere Cookies folgt ein Semikolon, und nach dem Semikolon steht ein Leerzeichen

CURLOPT_POSTFIELDS: Alle Daten werden mit der „POST“-Operation im HTTP-Protokoll gesendet. Fügen Sie zum Senden von Dateien das Präfix „@“ vor dem Dateinamen hinzu und verwenden Sie den vollständigen Pfad.

......

Weitere spezifische Konfigurationselemente finden Sie im PHP-Handbuch

cURL ist sehr leistungsfähig. Es handelt sich um eine universelle Bibliothek, die nicht nur für PHP gilt.

Ich hoffe, dass die Leser durch das Studium einiger klassischer cURL-Beispiele in diesem Blogbeitrag etwas gewinnen werden.

Stellungnahme:
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