Mbajeni faqen në curl_init() dhe vendosni ndërmjetësin në atë handle. PHP ka nevojë për shtesën cURL; një program curl që punon në terminal nuk provon se shtesa është e disponueshme.

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

Zëvendësoni IP-në dhe portën e dokumentimit me proxy-n tuaj HTTP ose një hyrje nga lista e proxy-ve HTTP. CURLOPT_NOPROXY pastron rregullat e anashkalimit për këtë test; CURLOPT_RETURNTRANSFER kthen trupin në vend që ta dërgojë në shfletues. Kufiri i lidhjes kufizon krijimin, ndërsa afati i përgjithshëm kufizon veprimin cURL.

Për një pikë fundore SOCKS5, zëvendësoni opsionet proxy HTTP përpara curl_exec():

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

CURLPROXY_SOCKS5_HOSTNAME ia delegon DNS-në e destinacionit serverit SOCKS. Përdorni protokollin e deklaruar; vetëm porta 1080 nuk e identifikon. Asnjëra zgjedhje nuk kërkon çaktivizimin e verifikimit të certifikatës së faqes.

Testoni $body === false në mënyrë strikte. Trupi bosh mund të jetë transferim i suksesshëm, ndërsa një tunel mund të dështojë përpara se të ketë ndonjë përgjigje nga faqja. Anasjelltas, trupi jo bosh mund të shoqërojë 403, 404 ose 429. Lexoni CURLINFO_RESPONSE_CODE bashkë me rezultatin e gabimit cURL për të vendosur nëse kërkesa e përfunduar shërben për detyrën tuaj.

Artikuj të ngjashëm