Żomm is-sit f’curl_init() u ssettja l-intermedjarju fuq dak il-handle. PHP jeħtieġ l-estensjoni cURL tiegħu; programm curl li jaħdem fit-terminal ma jipprovax li l-estensjoni hija disponibbli.

<?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;

Ibdel l-IP u l-port tad-dokumentazzjoni bil-proxy HTTP tiegħek jew b’entrata mil-lista ta’ proxies HTTP. CURLOPT_NOPROXY ineħħi regoli ta’ bypass għal dan it-test; CURLOPT_RETURNTRANSFER jirritorna l-korp minflok jibagħtu lill-browser. Il-limitu tal-konnessjoni jillimita t-twaqqif u l-ħin massimu ġenerali jillimita l-operazzjoni cURL.

Għal punt tat-tmiem SOCKS5, ibdel l-għażliet tal-proxy HTTP qabel curl_exec():

curl_setopt($ch, CURLOPT_PROXY, '203.0.113.10:1080');
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5_HOSTNAME);

CURLPROXY_SOCKS5_HOSTNAME jiddelega d-DNS tad-destinazzjoni lis-server SOCKS. Uża l-protokoll iddikjarat; il-port 1080 waħdu ma jidentifikahx. Ebda għażla tal-proxy ma teħtieġ li titfi l-verifika taċ-ċertifikat tas-sit.

Ittestja $body === false b’mod strett. Korp vojt jista’ jkun trasferiment b’suċċess, filwaqt li tunnell jista’ jfalli qabel ma teżisti xi tweġiba mis-sit. Bil-maqlub, korp mhux vojt jista’ jakkumpanja 403, 404 jew 429. Aqra CURLINFO_RESPONSE_CODE flimkien mar-riżultat tal-iżball ta’ cURL biex tiddeċiedi jekk it-talba lesta taqdix il-ħidma tiegħek.

Artikli relatati