PHP ပရိုဂရမ်းမင်းတွင် header () function ကို function ကိုအသုံးပြုသည်။ အသုံးများသော application တစ်ခုတွင်အသုံးပြုသူများကိုပြန်ညွှန်းခြင်း, Cache Control headers headers များသို့မဟုတ်အကြောင်းအရာအမျိုးအစားများကိုပြုပြင်ခြင်းပါဝင်သည်။ သို့သော် header () function ကိုအသုံးပြုခြင်းအတွက်အရေးကြီးသောကန့်သတ်ချက်တစ်ခုရှိသည်။ Header () မခေါ်မီ output မဖြစ်နိုင်ပါ။ ဒီလိုမှမဟုတ်ရင် PHP သည် header အချက်အလက်များကိုမှန်ကန်စွာပေးပို့ပြီးအမှားတစ်ခုဖြစ်ပေါ်လိမ့်မည်မဟုတ်ပေ။
HTTP protocol အတွက်လိုအပ်ချက်များ
HTTP protocol သည် header အချက်အလက်များကိုတုန့်ပြန်မှုမရှိမီပေးပို့ရမည်ဖြစ်သည်။ ထို့ကြောင့် header () function ကိုအသုံးပြုသောအခါဘာမျှ browser မှအဘယ်သူမျှမ output ကိုမရသေချာအောင်လုပ်ရမယ်။ (HTML, နေရာများ, လိုင်းချိုးဖောက်မှုများသို့မဟုတ်အမှားအယွင်းများစသည်တို့အပါအ 0 င်) သည် PHP ကိုတုန့်ပြန်မှုခန္ဓာကိုယ်၏အစိတ်အပိုင်းတစ်ခုပို့ဆောင်ပေးနိုင်လိမ့်မည်။ တစ်နည်းပြောရလျှင် header () ကို မည်သည့် output မတိုင်မီခေါ်ရမည်။
"header သတင်းအချက်အလက်ကိုပြုပြင်မွမ်းမံနိုင်" လို့မရပါဘူး header () function ကိုမခေါ်မီ PHP သည်အမှားတစ်ခုပြုလုပ်ပါက PHP သည် "သတိပေးချက် - header information: header အချက်အလက်ကိုပြုပြင်မွမ်းမံနိုင်ပါ။ ဆိုလိုသည်မှာ PHP သည်တုန့်ပြန်မှုအကြောင်းအရာများကိုစတင်ပေးပို့ခြင်းနှင့် Header အချက်အလက်များကိုပြုပြင်မွမ်းမံခြင်းသို့မဟုတ်ပို့ခြင်းမပြုရဟုဆိုလိုသည်။ ဤအမှားသည် 0 က်ဘ်ဆိုက်၏ပုံမှန်လုပ်ဆောင်မှုကိုအထူးသဖြင့်ပြန်ညွှန်းခြင်းနှင့် login video strinification ကဲ့သို့သောအခြေအနေများတွင်ပုံမှန်အားဖြင့်ပျက်ပြားစေသည်။
cache ကိုထိန်းချုပ်မှု
PHP သည် header သတင်းအချက်အလက်များကိုပို့သည့်အခါသင် cache, အမျိုးအစားသို့မဟုတ် redirection ကိုထိန်းချုပ်ရန် header () ကို သုံးနိုင်သည်။ အကယ်. output ရှိလျှင် HTTP Header ကိုမျှော်လင့်ထားသည့်အတိုင်း သတ်မှတ်. မရပါ, ၎င်းသည်မလိုလားအပ်သော cache များကိုသို့မဟုတ်စာမျက်နှာပြန်ဖွင့်ရန်ပျက်ကွက်ခြင်းခံရနိုင်သည်။
အလွတ်ရလဒ်များမရှိပါကသေချာအောင်လုပ်ပါ PHP ဖိုင်၏အစနှင့်အဆုံးတွင်မည်သည့် whitespace ဇာတ်ကောင်များသို့မဟုတ်လိုင်းချိုးများကိုရှောင်ကြဉ်ပါ။ ပုံမှန်အားဖြင့်ဤပြ problem နာသည် PHP ဖိုင်၏အစသို့မဟုတ်အဆုံးတွင်အထူးသဖြင့် <မတိုင်မီသို့မဟုတ်အပြီးအစတွင်တွေ့ရှိနိုင်ပါသလား ။ PHP Tag ။ ဖိုင်၏အစနှင့်အဆုံး၌နေရာများသို့မဟုတ်လိုင်းချိုးဖောက်မှုမရှိကြောင်းသေချာပါစေ။
ဥပမာအားဖြင့်, အောက်ပါကုဒ်သည်ပြ problems နာများကိုဖြစ်ပေါ်စေသည်။
<?php
// အမှား:ရှေ့တွင်အလွတ်အက္ခရာများရှိသည်
header("Location: http://m66.net");
exit;
?>
မှန်ကန်သောနည်းလမ်းမှာ -
<?php
header("Location: http://m66.net");
exit;
?>
ob_start () နှင့် ob_end_flush () ကို သုံးပါ။
PHP သည် output buffering ယန္တရားတစ်ခုဖြစ်ကြောင်းအမှန်တကယ်တုန့်ပြန်မှုမပို့မီ output content အားလုံးကိုဖမ်းယူခွင့်ပြုသည်။ ob_start () ကို အသုံးပြုခြင်းဖြင့် PHP သည် ob_end_flush () ဟုခေါ်သောအထိ PHP သည် buffering output ကိုစတင်သည်။ ၎င်းသည်သင့်အားမည်သည့်အရာမထုတ်ယူမီ header () function ကိုခေါ်ဆိုရန်ခွင့်ပြုသည်။
ဥပမာ -
<?php
ob_start(); // output ကို buffering စတင်ပါ
header("Location: http://m66.net"); // ယခုအသုံးပြုရန်လုံခြုံ header
ob_end_flush(); // ကြားခံရှင်းလင်းနှင့် output ကိုပေးပို့ပါ
exit;
?>
အမှားအယွင်းများကိုထုတ်ယူခြင်းကိုရှောင်ကြဉ်ပါ ဖွံ့ဖြိုးတိုးတက်မှုကာလအတွင်း PHP သည်အမှားတစ်ခုဖြစ်ပေါ်ပါက PHP သည်သတိပေးခြင်းသို့မဟုတ်အမှားတစ်ခုပြုလုပ်လေ့ရှိသည်။ အမှားအယွင်းများသည် output များဖြစ်လျှင်ခေါင်းစီးပေးပို့ခြင်းကိုအကျိုးသက်ရောက်လိမ့်မည်။ ၎င်းကိုရှောင်ရှားရန် PHP.INI ဖိုင်ကိုပြင်ဆင်ခြင်းသို့မဟုတ် ini_set () function ကိုအသုံးပြုခြင်းဖြင့်အမှား output ကိုသင်ပိတ်နိုင်သည်။
PHPP.INI ကို configure:
display_errors = Off
Ini_set ကို သုံးပါ။
<?php
ini_set('display_errors', 0); // 禁止အမှား输出
header("Location: http://m66.net");
exit;
?>
တတိယပါတီစာကြည့်တိုက်များသို့မဟုတ်မူဘောင်များကိုစစ်ဆေးပါ အချို့သောတတိယပါတီစာကြည့်တိုက်များသို့မဟုတ်မူဘောင်များသည်အကြောင်းအရာများကိုအလိုအလျောက်ထုတ်ယူခြင်းသို့မဟုတ်တောင်းဆိုစဉ်အတွင်း debugging လုပ်ဆောင်နိုင်သည်။ ဤအချိန်တွင်ဤစာကြည့်တိုက်များ၏စာရွက်စာတမ်းများသို့မဟုတ်အရင်းအမြစ်စည်းမျဉ်းစည်းကမ်းများကိုသူမခေါ်ဆိုခြင်းမပြုမီ output ကိုမသုံးရန်သေချာစေရန်သေချာစေရန်ဤစာကြည့်တိုက်များ၏မှတ်တမ်း (သို့) အရင်းအမြစ်ကုဒ်ကိုစစ်ဆေးနိုင်သည်။ အချို့သောမူဘောင်များသည်ဤပြ problem နာကိုရှောင်ရှားရန် log level or output အဆင့်များကိုပြုပြင်ရန်ခွင့်ပြုသည်။
Debug output ကို <br> ဖွံ့ဖြိုးတိုးတက်မှုအဆင့်တွင်သင် debug လုပ်ရန်လိုအပ်ပါက output buffering အတွက် ob_start () ကို ယာယီအသုံးပြုနိုင်သည်။
PHP ၏ header () function ကိုအသုံးပြုသောအခါ၎င်းကိုမခေါ်မီအဘယ်အရာကိုမျှ output မဟုတ်ကြောင်းသေချာအောင်လုပ်ပါ။ နေရာများ, လိုင်းချိုးများ, HTML code များသို့မဟုတ်အမှားမက်ဆေ့ခ်ျများစသည်တို့သည် PHP ကို header အချက်အလက်များကိုမှန်ကန်စွာပေးပို့ရန်ပျက်ကွက်စေနိုင်သည်။ output buffers များကို အသုံးပြု. output buffer များကိုအသုံးပြုခြင်း, output error information များကိုအသေအချာလေ့လာခြင်းဖြင့်ဤ ပြ problem နာကိုထိထိရောက်ရောက်ရှောင်ရှားနိုင်သည်။
သက်ဆိုင်သောတက်(ဂ်)များ:
header