વેબસાઇટ curl_init()માં રાખો અને મધ્યસ્થી એ જ હેન્ડલ પર ગોઠવો. PHPને તેનું cURL એક્સટેન્શન જોઈએ; ટર્મિનલમાં ચાલતો curl પ્રોગ્રામ એક્સટેન્શન ઉપલબ્ધ હોવાનું સાબિત કરતો નથી.

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

દસ્તાવેજનું IP અને પોર્ટ તમારી HTTP પ્રોક્સી કે HTTP પ્રોક્સીની યાદીની નોંધથી બદલો. CURLOPT_NOPROXY આ તપાસ માટે બાયપાસ નિયમો સાફ કરે છે; CURLOPT_RETURNTRANSFER બોડી બ્રાઉઝરને મોકલવાને બદલે પાછી આપે છે. જોડાણ મર્યાદા સ્થાપનને અને કુલ સમયમર્યાદા cURL પ્રક્રિયાને બાંધે છે.

SOCKS5 એન્ડપોઇન્ટ માટે HTTP પ્રોક્સી વિકલ્પો curl_exec() પહેલાં બદલો:

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

CURLPROXY_SOCKS5_HOSTNAME ગંતવ્ય DNS SOCKS સર્વરને સોંપે છે. જણાવેલો પ્રોટોકોલ વાપરો; માત્ર પોર્ટ 1080 તેને ઓળખતો નથી. કોઈ પ્રોક્સી વિકલ્પ માટે વેબસાઇટનું પ્રમાણપત્ર ચકાસવું બંધ કરવું જરૂરી નથી.

$body === false કડક રીતે તપાસો. ખાલી બોડી સફળ ટ્રાન્સફર હોઈ શકે, જ્યારે વેબસાઇટનો કોઈ જવાબ આવે તે પહેલાં ટનલ નિષ્ફળ થઈ શકે. ઊલટું, બિનખાલી બોડી સાથે 403, 404 કે 429 આવી શકે. પૂર્ણ વિનંતી તમારું કામ કરે છે કે નહીં તે નક્કી કરવા CURLINFO_RESPONSE_CODEને cURL ભૂલ પરિણામ સાથે વાંચો.

સંબંધિત લેખો