In PHP ist Curl eine leistungsstarke Bibliothek für die Ausführung verschiedener HTTP -Anfragen. In vielen Fällen müssen wir eine Anfrage über einen Proxy -Server einleiten, z. In diesem Artikel wird detailliert erläutert, wie ein Proxy -Server in Verbindung mit der Curl_Setopt -Funktion eingerichtet wird, wenn eine Curl -Sitzung mit Curl_Close geschlossen wird, um Request Proxy zu implementieren.
Der allgemeine Prozess des Sendens von Anforderungen mit Curl lautet wie folgt:
Initialisieren Sie die Sitzung: curl_init ()
Setzen Sie Anforderungsoptionen: curl_setopt ()
Anforderung ausführen: curl_exec ()
Schließen Sie die Sitzung: curl_close ()
Der Schwerpunkt dieses Artikels liegt auf der Einrichtung eines Proxy -Servers in Schritt 2.
Curl bietet spezielle Optionen zum Einrichten des Proxy:
Curlopt_proxy : Proxy -Server -Adresse (IP- oder Domänenname und Port)
Curlopt_proxyport : Proxy -Server -Port (optional)
CURLOPT_PROXYUSERPWD : Der Benutzername und das Kennwort des Proxy -Servers, das Format ist Benutzername: Passwort (optional)
Curlopt_proxytype : Proxy -Typ, Standard ist HTTP -Proxy, gemeinsame Typen umfassen Socken5 usw.
Beispielcode:
<?php
// Initialisierung cURL Sitzung
$ch = curl_init();
// Richten Sie eine Anfrage ein URL,Hier ist eine Beispielschnittstelle,Ersetzen Sie den Domainnamen durch gitbox.net
curl_setopt($ch, CURLOPT_URL, "https://api.gitbox.net/example/data");
// Gibt die Antwort anstelle der direkten Ausgabe zurück
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Legen Sie die Proxy -Serveradresse und den Port -Port fest
curl_setopt($ch, CURLOPT_PROXY, "proxy.gitbox.net"); // Proxy -Server -Adresse
curl_setopt($ch, CURLOPT_PROXYPORT, 8080); // Proxy -Port
// Wenn der Agent Authentifizierung benötigt,Setzen Sie Benutzername und Passwort
// curl_setopt($ch, CURLOPT_PROXYUSERPWD, "user:password");
// Bei Bedarf SOCKS5 Schauspiel,设置Schauspiel类型
// curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
// Eine Anfrage ausführen
$response = curl_exec($ch);
// Stellen Sie fest, ob die Anfrage erfolgreich ist
if(curl_errno($ch)){
echo 'Curl error: ' . curl_error($ch);
} else {
echo $response;
}
// Schließung cURL Sitzung
curl_close($ch);
Optionen | veranschaulichen |
---|---|
Curlopt_proxy | Legen Sie die Proxy -Server -Adresse fest, unterstützen Sie IP- und Domänennamen |
Curlopt_proxyport | Legen Sie den Proxy -Server -Port fest, Standard ist 8080 |
Curlopt_proxyuserpwd | Setzen Sie den Benutzernamen und das Passwort für die Proxy -Authentifizierung, das Format ist Benutzer: Pass |
Curlopt_proxytype | Setzen Sie Proxy -Typen wie HTTP (Standard), Socks4, Socks5 usw. |
Curlopt_httpproxytunnel | Ob HTTP -Proxy -Tunnel aktiviert werden soll, standardmäßig falsch |
Wenn der Proxy -Server beispielsweise Benutzername und Kennwortauthentifizierung benötigt und ein Socken -Proxy ist, können Sie ihn so schreiben:
curl_setopt($ch, CURLOPT_PROXY, "proxy.gitbox.net");
curl_setopt($ch, CURLOPT_PROXYPORT, 1080);
curl_setopt($ch, CURLOPT_PROXYUSERPWD, "user:password");
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.gitbox.net/example/data");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_PROXY, "proxy.gitbox.net");
curl_setopt($ch, CURLOPT_PROXYPORT, 8080);
$response = curl_exec($ch);
if(curl_errno($ch)){
echo 'Curl error: ' . curl_error($ch);
} else {
echo $response;
}
curl_close($ch);
Verwenden Sie die Option curlopt_proxy Series von Curl_Setopt , um einen Proxy -Server einfach einzurichten.
Die Proxy -Adresse sollte den Domänennamen oder die Domain -IP angeben und der Port kann separat festgelegt werden.
Wenn eine Authentifizierung erforderlich ist, geben Sie den Benutzernamen und das Kennwort über curlopt_proxyUserpwd an.
Der Proxy -Typ wird gemäß den Anforderungen festgelegt. HTTP ist der Standardtyp und muss spezifisch angegeben werden, wenn ein SOCKS5 -Proxy angegeben ist.
Rufen Sie nach der Verwendung curl_close auf, um die Ressource zu veröffentlichen.
Auf diese Weise können Sie Curl in PHP flexibel verwenden, um mit dem Proxy -Server zusammenzuarbeiten, um HTTP -Anforderungen zur Erfüllung verschiedener Netzwerkumgebungsanforderungen zu initiieren.