Eng Proxy-IP mat PHP cURL benotzen
Setzt en HTTP- oder SOCKS-Proxy um PHP-cURL-Handle, haalt d’Websäit-URL getrennt an ënnerscheet Transportfeeler vun HTTP-Äntwerten.
Haalt d’Websäit an curl_init() a setzt de Vermëttler op deem Handle. PHP brauch seng cURL-Erweiderung; e funktionéierenden curl-Programm am Terminal beweist net, datt d’Erweiderung disponibel ass.
<?php
$ch = curl_init('https://example.com/');
curl_setopt_array($ch, [
CURLOPT_PROXY => 'http://203.0.113.10:8080',
CURLOPT_PROXYTYPE => CURLPROXY_HTTP,
CURLOPT_NOPROXY => '',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CONNECTTIMEOUT => 5,
CURLOPT_TIMEOUT => 15,
]);
$body = curl_exec($ch);
if ($body === false) {
throw new RuntimeException(curl_error($ch), curl_errno($ch));
}
echo curl_getinfo($ch, CURLINFO_RESPONSE_CODE), PHP_EOL;
echo $body;Ersetzt d’Dokumentatiouns-IP an de Port duerch Ären HTTP-Proxy oder en Entrée aus der Lëscht vun HTTP-Proxye. CURLOPT_NOPROXY läscht Ëmgoe-Reegele fir dësen Test; CURLOPT_RETURNTRANSFER gëtt den Inhalt zeréck amplaz en un de Browser ze schécken. D’Verbindungslimitt begrenzt den Opbau an d’Gesamtzäitlimitt d’cURL-Operatioun.
Ersetzt fir en SOCKS5-Endpunkt d’HTTP-Proxy-Optioune virun curl_exec():
curl_setopt($ch, CURLOPT_PROXY, '203.0.113.10:1080');
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5_HOSTNAME);CURLPROXY_SOCKS5_HOSTNAME delegéiert den DNS vum Zil un de SOCKS-Server. Benotzt dat uginnent Protokoll; Port 1080 eleng identifizéiert et net. Keng vun de béide Proxyvariante verlaangt d’Zertifikatskontroll vun der Websäit auszeschalten.
Test $body === false strikt. Eidele Inhalt kann eng erfollegräich Iwwerdroung sinn, wärend en Tunnel scheitere kann, éier iwwerhaapt eng Websäit-Äntwert existéiert. Ëmgekéiert kann net-eidelen Inhalt mat 403, 404 oder 429 kommen. Liest CURLINFO_RESPONSE_CODE zesumme mam cURL-Feelerresultat fir ze entscheeden, ob déi ofgeschloss Ufro Är Aufgab erfëllt.