Hou die webwerf in curl_init() en stel die tussenganger op daardie handvatsel in. PHP benodig sy cURL-uitbreiding; ’n werkende curl-program in die terminaal bewys nie dat die uitbreiding beskikbaar is nie.

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

Vervang die dokumentasie-IP en -poort met jou HTTP-proxy of ’n inskrywing uit die HTTP-instaanbedienerlys. CURLOPT_NOPROXY maak omseilreëls vir dié toets skoon; CURLOPT_RETURNTRANSFER gee die inhoud terug eerder as om dit na die blaaier te stuur. Die verbindingslimiet begrens opstelling en die algehele tydlimiet beperk die cURL-handeling.

Vir ’n SOCKS5-eindpunt, vervang die HTTP-proxyopsies voor curl_exec():

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

CURLPROXY_SOCKS5_HOSTNAME delegeer bestemmings-DNS aan die SOCKS-bediener. Gebruik die vermelde protokol; poort 1080 alleen identifiseer dit nie. Nie een van die proxykeuses vereis dat jy die webwerf se sertifikaatverifikasie afskakel nie.

Toets $body === false streng. ’n Leë inhoud kan ’n suksesvolle oordrag wees, terwyl ’n tonnelfout kan plaasvind voordat enige webwerfantwoord bestaan. Omgekeerd kan nieleë inhoud saam met 403, 404 of 429 voorkom. Lees CURLINFO_RESPONSE_CODE saam met cURL se foutresultaat om te bepaal of die voltooide versoek jou taak dien.

Verwante artikels