HTTP URL-ի ստացում պրոքսիի միջոցով PHP file_get_contents-ով
Կարգավորեք PHP-ի HTTP հոսքի wrapper-ը forward պրոքսիի համար՝ ներառյալ հարցման ձևաչափը և հոսքի կոնտեքստների սահմանափակումները։
Սովորական 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 տրանսպորտը նախքան ակնկալելը, որ այն կօգտագործի այս կոնտեքստը։