האַלט דעם וועבזײַטל אין 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־טעות־רעזולטאַט צו באַשטימען צי די פֿאַרענדיקטע בקשה דינט אײַער אויפֿגאַבע.

פֿאַרבונדענע אַרטיקלען