Սովորական HTTP հարցման համար առանց PHP cURL-ի՝ HTTP հոսքի wrapper-ին փոխանցեք պրոքսիի կոնտեքստ։

$context = stream_context_create([
    'http' => [
        'proxy' => 'tcp://203.0.113.10:8080',
        'request_fulluri' => true,
        'timeout' => 10,
    ],
]);
$body = file_get_contents('http://example.com/', false, $context);

Փոխարինեք փաստաթղթային վերջնակետը ձեր HTTP պրոքսիով կամ HTTP պրոքսիների ցանկ-ից թեկնածուով։ HTTP կոնտեքստի ինտերֆեյսը TCP հասցե է ակնկալում proxy-ի համար։ request_fulluri=trueամբողջ նպատակակետ URI-ն դնում է հարցման տողում, ինչպես պահանջում են շատ forward պրոքսիներ։ Ժամանակի սահմանը սահմանափակում է հոսքի գործողությունը այդ wrapper-ի կանոններով։

Մարմինը վերլուծելուց առաջ ստուգեք վերադարձված արժեքը և նախազգուշացումը․ ձախողված ընթերցումը և դատարկ հաջող պատասխանը տարբեր մշակում են պահանջում։ Սկսեք ախտորոշումը այս մեկ HTTP նպատակակետով և սահմանափակ հարցմամբ։ HTTPS-ը ավելացնում է թունելավորում և TLS վարք, որոնք պետք է ստուգվեն փաստացի wrapper/PHP տարբերակի համար․ այս օրինակը չի հաստատում այդ հնարավորությունները։

Կոնտեքստը այս կանչին փոխանցելը տեսանելի է պահում երթուղին և խուսափում է չկապված URL ընթերցումների փոփոխությունից։ Համօգտագործվող լռելյայն կոնտեքստը տեղին է միայն այն դեպքում, երբ հավելվածը դիտավորյալ ցանկանում է այդ քաղաքականությունը․ գրադարանները պետք է հաշվի առնեն դրա ավելի լայն շրջանակը։

Սա կարգավորում է PHP հոսքերը, ոչ թե ինքնուրույն ստեղծված cURL բռնակ, դիտարկիչ կամ այլ գործընթաց։ Բացահայտեք փաթեթի իրական HTTP տրանսպորտը նախքան ակնկալելը, որ այն կօգտագործի այս կոնտեքստը։

Առնչվող հոդվածներ