PHP ပရိုဂရမ်တွင် header () function သည် header () function သည် Php HTTP header အချက်အလက်များကိုပေးပို့ခြင်း, Cache Control etc ကိုစသည်တို့ကိုပေးပို့ရန်အသုံးပြုသောဖောက်သည်များသို့ပို့ဆောင်ရန်အသုံးပြုသောအလွန်အသုံးများသောကိရိယာတစ်ခုဖြစ်သည်။ သို့သော် PHP script ကို mode မှာအလုပ်လုပ်နိုင်သလား ဤဆောင်းပါးသည်သင့်အားအသေးစိတ်အဖြေပေးလိမ့်မည်။
ပထမ ဦး စွာ PHP CLI ပုံစံဆိုတာဘာလဲဆိုတာကိုနားလည်ဖို့လိုတယ်။ CLI (command line interface) သည် php scripts ကို command line မှတဆင့်တိုက်ရိုက်ထုတ်လွှင့်ခြင်း, များသောအားဖြင့်ကျွန်ုပ်တို့ရိုက်ထည့်ပါ
php script.php
ဤကိစ္စတွင် PHP သည်ဝက်ဘ်စာမျက်နှာများကိုထုတ်လုပ်ရန်ကိရိယာတစ်ခုအနေဖြင့်မရှိတော့ပါ။
header ၏အဓိကလုပ်ဆောင်ချက် () function ၏အဓိကလုပ်ဆောင်ချက်မှာ HTTP header အချက်အလက်များကို client (browser) သို့ပို့ရန်ဖြစ်သည်။
header('Location: https://m66.net/welcome');
exit;
ဤကုဒ်သည်သတ်မှတ်ထားသော URL သို့ redirect လုပ်ရန် browser ကိုပြောပြလိမ့်မည်။
သို့သော်မှတ်ချက် - header () သည်အမှန်တကယ်အကြောင်းအရာများကိုထုတ်လုပ်ခြင်းမဟုတ်ဘဲတုန့်ပြန်ခေါင်းစီးကိုပြုပြင်သည် ။ တစ်နည်းပြောရလျှင်၎င်း၏အခန်းကဏ် php သည် PHP နှင့် web server အကြား http protocol ပေါ်တွင်လုံးလုံးမူတည်သည်။
တိုက်ရိုက်အဖြေ - အဲဒါကိုအသုံးမပြုနိုင်ဘူး, ဒါမှမဟုတ်အဲဒါကိုသုံးမယ်ဆိုရင်အဓိပ္ပာယ်မရှိဘူး ။
အကြောင်းပြချက်များမှာအောက်ပါအတိုင်းဖြစ်သည် -
CLI MODE တွင် PHP သည်ပုံမှန် output (stdout), HTTP protocol မပါဘဲ, HTTP protocol မပါဘဲ, header မရှိပါ။
Header () function သည် SAPI (ဆာဗာ API) ရှိပတ်ဝန်းကျင်တွင်ပတ် 0 န်းကျင်တွင်လည်ပတ်နေသလား ။ သို့ဆိုလျှင်၎င်းသည်ခေါ်ဆိုသည့်အခါ၎င်းသည် http Header ကိုထုတ်လုပ်လိမ့်မည်မဟုတ်သော်လည်းအမှားတစ်ခုကိုသတင်းပို့မည်မဟုတ်ပါ,
ဥပမာအားဖြင့်အောက်ပါကုဒ်ကို run ပါ။
<?php
header('Content-Type: application/json');
echo json_encode(['status' => 'ok']);
ဝက်ဘ်ပတ်ဝန်းကျင်တွင် browser သည် အကြောင်းအရာအမျိုးအစား header ကိုလက်ခံပြီး၎င်းကို JSON အဖြစ်အသိအမှတ်ပြုသည်။ ဒါပေမယ့် CLI အောက်မှာ run:
php script.php
output ကိုသာတွေ့လိမ့်မည်။
{"status":"ok"}
ဘာဖြစ်လို့လဲဆိုတော့ terminal သည် HTTP ခေါင်းစီးများကိုလုံးဝနားမလည်သောသို့မဟုတ်ကိုင်တွယ်ခြင်းမရှိပါ။
အကျဉ်းချုပ်:
? CLI အောက်ရှိ Header () သို့ခေါ်ဆိုမှုသည်အမှားတစ်ခုအားသတင်းပို့လိမ့်မည်မဟုတ်ပါ, သို့သော်၎င်းသည်မမှန်ကန်သောစစ်ဆင်ရေးနှင့်ညီမျှသည်။
? HTTP headers headers များကိုမပို့ပါ။ အကြောင်းမှာ CLI တွင် HTTP layer မရှိပါ။
? terminal သို့ output ကို output လုပ်ရန် echo , print_r နှင့်အခြားလုပ်ဆောင်မှုများကိုဆက်လက်အသုံးပြုနိုင်သည်။
အကယ် . သင်သည် header ကို ခေါ်ဆိုပါက CLI scripts ရေးသားသည့်အခါ၎င်းကိုအကြံပြုသည်။
Code သည် 0 က်ဘ်နှင့် CLI နှစ်မျိုးလုံးကို 0 င်ရောက်ခြင်းရှိမရှိအတည်ပြုပါ။ သို့ဆိုလျှင် SAPI ထောက်လှမ်းမှုကိုထည့်ရန်အကောင်းဆုံးဖြစ်သည်။