PHP file_get_contents ဖြင့် proxy မှတစ်ဆင့် HTTP URL ရယူခြင်း
forward proxy အတွက် PHP ၏ HTTP stream wrapper ကို ပြင်ဆင်ပါ၊ တောင်းဆိုချက် ပုံစံချခြင်းနှင့် stream context များ၏ ကန့်သတ်ချက်များ အပါအဝင်။
PHP cURL မပါဘဲ သာမန် HTTP တောင်းဆိုချက်အတွက် HTTP stream wrapper သို့ proxy context ကို ပေးပို့ပါ:
$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);
မှတ်တမ်း endpoint ကို သင့် HTTP proxy သို့မဟုတ် HTTP proxy စာရင်း မှ ကိုယ်စားလှယ်တစ်ဦးဖြင့် အစားထိုးပါ။ HTTP context အင်တာဖေ့စ် သည် proxy အတွက် TCP လိပ်စာကို မျှော်လင့်သည်။ request_fulluri=true သည် ဦးတည်ရာ URI အပြည့်အစုံကို တောင်းဆိုချက်လိုင်းတွင် ထည့်သည်၊ forward proxy များစွာ ဤသို့ လိုအပ်သည်။ timeout သည် ထို wrapper ၏ စည်းမျဉ်းများအောက်တွင် stream လုပ်ဆောင်ချက်ကို ကန့်သတ်သည်။
ကိုယ်ထည်ကို ခွဲခြမ်းစိတ်ဖြာခြင်း မပြုမီ ပြန်ပေးလိုက်သော တန်ဖိုးနှင့် သတိပေးချက်ကို စစ်ဆေးပါ၊ မအောင်မြင်သော ဖတ်ခြင်းနှင့် ဗလာဖြစ်သော အောင်မြင်သည့် တုံ့ပြန်မှုတို့သည် မတူညီသော ကိုင်တွယ်မှု လိုအပ်သည်။ ဤ HTTP ဦးတည်ရာ တစ်ခုနှင့် ကန့်သတ်ထားသော တောင်းဆိုချက်ဖြင့် စစ်ဆေးမှုကို စတင်ပါ။ HTTPS သည် ဥမင်လိုဏ်ခေါင်းနှင့် TLS အပြုအမူကို ထပ်တိုးသည်၊ ၎င်းတို့ကို အမှန်တကယ် wrapper/PHP ဗားရှင်းအတွက် စစ်ဆေးရမည်၊ ဤဥပမာသည် ထို စွမ်းရည်များကို သက်သေမပြပါ။
ဤခေါ်ဆိုမှုတွင် context ကို ပေးပို့ခြင်းသည် လမ်းကြောင်းကို မြင်သာစွာ ထားရှိပြီး ဆက်စပ်မှုမရှိသော URL ဖတ်ခြင်းများကို မပြောင်းလဲစေရန် ရှောင်ရှားသည်။ မျှဝေထားသော မူလ context သည် အပ်ပလီကေးရှင်းက ထို မူဝါဒကို တမင်တကာ လိုချင်မှသာ သင့်လျော်သည်၊ စာကြည့်တိုက်များသည် ၎င်း၏ ပိုကျယ်သော နယ်ပယ်ကို ထည့်သွင်းစဉ်းစားသင့်သည်။
ဤသည် PHP stream များကို ပြင်ဆင်ခြင်းဖြစ်သည်၊ သီးခြားဖန်တီးထားသော cURL handle မဟုတ်ပါ၊ browser သို့မဟုတ် အခြား လုပ်ငန်းစဉ် မဟုတ်ပါ။ package တစ်ခု ဤ context ကို အသုံးပြုမည်ဟု မျှော်လင့်မီ ၎င်း၏ အမှန်တကယ် HTTP သယ်ယူပို့ဆောင်မှုကို ဖော်ထုတ်ပါ။