PHP တွင် get_headers() သည် ၎င်း၏ တတိယ အာဂျူမင့်အဖြစ် stream context ကို လက်ခံသည်။ PHP 8 တွင် HTTP URL အတွက် header စစ်ဆေးမှုသည် ၎င်း၏ ကိုယ်ပိုင် proxy ဖွဲ့စည်းမှုကို သယ်ဆောင်နိုင်သည်:

$context = stream_context_create([
    'http' => [
        'proxy' => 'tcp://proxy.example.net:8080',
        'request_fulluri' => true,
        'method' => 'HEAD',
        'follow_location' => 0,
        'timeout' => 10,
    ],
]);

$headers = get_headers('http://example.net/file.zip', false, $context);
if ($headers === false) {
    throw new RuntimeException('Header request failed');
}

Proxy သည် HTTP stream wrapper အတွက် TCP အဆုံးမှတ် ဖြစ်သည်။ ဤအများပြည်သူ HTTP စစ်ဆေးမှုအတွက် ၎င်း၏ နေရာယှက်ထားသော host နှင့် port ကို HTTP proxy စာရင်းမှ အတည်ပြုချက်မရှိသော ကိုယ်စားလှယ်လောင်းဖြင့် အစားထိုးပါ။ request_fulluri သည် HTTP တောင်းခံမှုလိုင်းတွင် ပြည့်စုံသော ဦးတည်ရာ URI ကို ပေးသည်၊ ရှေ့သို့ပို့ proxy များစွာ မျှော်လင့်သကဲ့သို့။ ဤ context သည် ဤခေါ်ဆိုမှုနှင့် သက်ဆိုင်သည်၊ အခြား URL ဖတ်ရှုမှုများ အသုံးပြုသော မူလ context ကို မပြောင်းလဲပါ။

Function အမည် ဖြစ်သော်လည်း ၎င်း၏ မူလ တောင်းခံမှုနည်းလမ်းမှာ GET ဖြစ်သည်။ တိကျသော HEAD နည်းလမ်းသည် သက်ဆိုင်ရာ တုံ့ပြန်မှုကိုယ်ထည်မပါဘဲ တုံ့ပြန်မှု မက်တာဒေတာကို ဆာဗာထံ တောင်းသည်။ ဆာဗာသည် HEAD ကို ငြင်းပယ်နိုင် သို့မဟုတ် ကွဲပြားစွာ ကိုင်တွယ်နိုင်သည်၊ ထို့ကြောင့် header စစ်ဆေးမှု အောင်မြင်ခြင်းသည် နောက်ပိုင်း ဒေါင်းလုဒ် အောင်မြင်မည်ဟု သက်သေမဟုတ်ပါ။

ဤတွင် ပထမ တုံ့ပြန်မှုကို စစ်ဆေးရန် ပြန်လည်ညွှန်ပြမှုများကို လိုက်ခြင်းကို ပိတ်ထားသည်။ ထိုအခါ Location header နှင့် ပြန်လည်ညွှန်ပြမှု အခြေအနေသည် အခြား URL ကို ယူရန် ညွှန်ကြားချက်မဟုတ်ဘဲ အသုံးဝင်သော ရလဒ်များ ဖြစ်သည်။ စစ်ဆေးမှုသည် ပြန်လည်ညွှန်ပြမှုများကို လိုက်ရမည်ဆိုလျှင် ထိုမူဝါဒကို တမင်ပြောင်းပြီး ထပ်ဆောင်း တုံ့ပြန်မှု header များကို ထည့်သွင်းစဉ်းစားပါ။

false အာဂျူမင့်သည် အညွှန်းပါ header array ကို ထိန်းသိမ်းသည်။ ဆက်စပ် ခွဲခြမ်းစိတ်ဖြာမှု ပိုအသုံးဝင်သောအခါ true ကို အသုံးပြုပါ။

ဆက်စပ်ဆောင်းပါးများ