multi-cURL тасымалдары өз ретімен аяқталады. Әр handle-ге басқа прокси тағайындасаңыз, бірінші аяқталған нәтиже міндетті түрде кіріс тізіміңіздегі бірінші проксиге тиесілі емес.

Әр handle-ді конфигурациялағанда тұрақты тасымал идентификаторын тіркеңіз. Егер таңдауға болатын жалпыға ортақ соңғы нүктелерді сынап жатсаңыз, HTTP прокси тізімі HTTP үміткерлерін ұсынады. PHP libcurl-дың жеке деректер механизмін ашады:

$id = 'job-17';
curl_setopt($handle, CURLOPT_PROXY, 'http://203.0.113.10:8080');
curl_setopt($handle, CURLOPT_PRIVATE, $id);

Қашан curl_multi_info_read() аяқталған тасымал туралы хабарлағанда, идентификаторды қалпына келтіру үшін қайтарылған handle-ді пайдаланыңыз:

$id = curl_getinfo($message['handle'], CURLINFO_PRIVATE);

Сол идентификатормен кілттелген қолданба жазбасын ұстаңыз, онда меже, конфигурацияланған прокси және әрекет нөмірі болады. Басқа прокси арқылы қайта әрекет жаңа әрекет жазбасына лайық, тіпті ол сол жалпы жұмысқа тиесілі болса да.

Үш түрлі мекенжайды бөлек ұстаңыз

Конфигурацияланған прокси соңғы нүктесі cURL-ге берілген мекенжай. Қосылымның тең мекенжайы cURL ашқан желілік қосылымын сипаттайды. Межелеген шығыс IP — қарсы жақтан хабарланған ақпарат. Олар әртүрлі болуы мүмкін, әсіресе тізбектелген немесе провайдер басқаратын проксилерде.

Жеке метадеректер сіздің ниетіңіздегі конфигурацияны жазады; олар меже қай IP-ді көргенін дәлелдей алмайды. Керісінше, меженің IP жауабы бағдарламаңыздағы қай handle оны жасағанын автоматты түрде айтпайды.

Күнделікті журналдарда қауіпсіз прокси идентификаторын сақтаңыз. Егер толық соңғы нүктеде тіркелгі деректері болса, әр сәтсіз тасымал үшін сол URL-ді журналға жазу құпия сөзді бүкіл қате жинағыңызға таратады.

Бұл шағын есеп жүргізу қадамы аралас нәтижелерді оқуды жеңілдетеді: бір жұмыс, бір әрекет, бір таңдалған прокси және бір нақты нәтиже. Ол сондай-ақ PHP-ның ресурсқа негізделген және нысанға негізделген cURL API-лері арасында өзгерген кездейсоқ handle көріністеріне сүйенуден сақтайды.

Қатысты мақалалар