Was CURLOPT_PROXYPORT zu einer cURL-Proxy-Einstellung hinzufügt
Verstehen Sie die separate Proxy-Port-Option, ihren Vorrang gegenüber einem Port in CURLOPT_PROXY und warum der Endpunkt trotzdem einen Host braucht.
CURLOPT_PROXYPORT liefert lediglich eine Portnummer. Es benennt keinen Proxy-Host, wählt kein Protokoll und erzeugt keinen Listener auf dem lokalen Rechner.
Eine neue PHP-cURL-Konfiguration lässt sich leichter lesen, wenn der vollständige Endpunkt zusammbleibt:
curl_setopt($handle, CURLOPT_PROXY, 'http://proxy.example:3128');Die libcurl-Dokumentation rät von der separaten Port-Option ab. Vorhandener Code kann sie dennoch mit einem Host ohne eingebetteten Port verwenden:
curl_setopt($handle, CURLOPT_PROXY, 'http://proxy.example');
curl_setopt($handle, CURLOPT_PROXYPORT, 3128);Ein ausdrücklich in der Proxy-Zeichenkette enthaltener Port hat Vorrang vor der separaten Option. Vermeiden Sie zwei widersprüchliche Nummern.
Wenn in einem Fragment nur CURLOPT_PROXYPORT auftaucht, prüfen Sie den Rest der Handle-Konfiguration und die zutreffende Umgebung. Das Fragment allein verrät nicht, welchen Proxy-Host libcurl gegebenenfalls verwendet.
Port 3128 ist eine gängige Bereitstellungswahl, kein Protokollerkenner. Verwenden Sie das tatsächliche Protokoll und den tatsächlichen Port des Listeners. Für eine öffentliche HTTP-Route liefert die HTTP-Proxy-Liste Adress- und Port-Kandidaten, die in der Proxy-URL zusammengehalten werden sollten. Ein Proxy, der über einen anderen Port erreichbar ist, muss nicht wandern, nur um einem Beispiel zu entsprechen.