PHP Development တွင် __HALT_COMPILER () သည်ဘာသာစကားပုံစံဖြစ်သည့်ဘာသာစကားဖွဲ့စည်းပုံမှာအချို့သောအခြေအနေများတွင်အလွန်အသုံးဝင်သည်။ ၎င်းသည် PHP စကားကို "ဤနေရာတွင်ခွဲခြမ်းစိတ်ဖြာခြင်း" ဟုပြောရန်အသုံးပြုသည်။ ဤယန္တရားကို Selfacting scripts, ထုပ်ပိုးကိရိယာများသို့မဟုတ်စိတ်ကြိုက်ဖိုင်ပုံစံများဖန်တီးခြင်းကဲ့သို့သော binary သို့မဟုတ် text data များကိုဖုံးကွယ်ရန်သို့မဟုတ်ဖြည့်စွက်ရန်အသုံးပြုနိုင်သည်။ ဤဆောင်းပါးသည် __halt_compiler () ၏အခန်းကဏ် and ကိုအသေးစိတ်ဖော်ပြပေးမည်။
__HALT_COMPILER () သည်ဘာသာစကားတည်ဆောက်ပုံ (function မဟုတ်) နှင့်ကွပ်မျက်ခံရသည့်အခါ PHP စကားပြန်သည်ဖိုင်တွင်နောက်ဆက်တွဲကုဒ်များကိုချက်ချင်းရေးသားခြင်းကိုချက်ချင်းရပ်တန့်သွားမည်ဖြစ်သည်။ ၎င်းသည် PHP မဟုတ်သောအချက်အလက်များကို PHP ဖိုင်အဆုံးတွင်ပုံမှန်ကုဒ်ကွပ်မျက်မှုကိုမထိခိုက်စေဘဲ PHP ဖိုင်၏အဆုံးတွင်သိမ်းဆည်းရန်ခွင့်ပြုသည်။
<?php
echo "Hello, World!";
__halt_compiler();
ဒါမဟုတ်ဘူးPHPအဆိုပါခွဲခြမ်းစိတ်ဖြာ၏အကြောင်းအရာ。
အထက်ဖော်ပြပါကုဒ်တွင် "ဟဲလို, ကမ္ဘာ, __halt_Compiler () __halt_compiler () __halt_Compiler () ပြီးနောက်စာသားသည်ထွက်ပေါ်လာလိမ့်မည်မဟုတ်ချေ။
developer များ __halt_compiler () self-extract scripts သို့မဟုတ် embed အရင်းအမြစ်များကိုတည်ဆောက်ရန်။ ဥပမာအားဖြင့်, သင် configuration files များ, encrypted data enc လုပ်လိုပါက PHP file ၏အဆုံးတွင်၎င်းကိုသင်ဤကဲ့သို့ကိုင်တွယ်နိုင်သည်။
<?php
$dataOffset = __COMPILER_HALT_OFFSET__;
$data = file_get_contents(__FILE__, false, null, $dataOffset);
// ဒီမှာသင်လုပ်နိုင်တယ်$dataနောက်ထပ်အပြောင်းအလဲနဲ့လုပ်ပါ,မအောင်မြင်ပါ、ခွဲခြမ်းစိတ်ဖြာခြင်းစသည်
__halt_compiler();
// Binary Data Start
အချို့သောအလိုအလျောက်ထုတ်လုပ်လိုက်သော scripts များတွင်သတင်းအချက်အလက်, လမ်းကြောင်းများ, တိုကင်များစသဖြင့်မကာကွယ်ပါ ။
__HALT_CHPILER () သည်နောက်ဆက်တွဲကုဒ်ကိုကွပ်မျက်ခြင်းမှတားဆီးနိုင်သော်လည်းလက်တွေ့တွင်မူအောက်ပါအချက်များကိုလည်းအာရုံစိုက်သင့်သည်။
__halt_Compiler () ပါ 0 င ် သည့်ဖိုင်သည်အခြားဖိုင်များမှအခြားဖိုင်များမှရည်ညွှန်းသည်ဆိုပါက PHP သည် __HALT_COMPILER () ကိုအကောင်အထည်ဖော်သည့်အခါ PHP သည်ကျန် code ကိုခွဲထုတ်လိမ့်မည်။ ၎င်းကိုတားဆီးရန်ဖိုင်ကိုသီးခြား entry file တစ်ခုအဖြစ်သတ်မှတ်ရန်သို့မဟုတ်ထိပ်တန်းသတိပေးချက်သို့မှတ်ချက်များထည့်ရန်အကြံပြုသည်။
// ဒီဖိုင်ကိုမထည့်ပါနဲ့,သီးခြားစစ်ဆင်ရေးမှတဆင့်ဝင်ရောက်သင့်သည်
__compiler_HAMALT_Offstsststs__ ကို __File__s နှင့်အမြဲတမ်းအသုံးပြုသည်။ ဥပမာအားဖြင့်:
$file = __FILE__;
$data = file_get_contents($file, false, null, __COMPILER_HALT_OFFSET__);
ဤနည်းလမ်းသည်မတူညီသောပတ်ဝန်းကျင်တွင်ဖြန့်ကျက်ရန်ပိုမိုခိုင်မာပြီးပိုမိုအထောက်အကူပြုသည်။
PHP ဖိုင်၏နောက်ကျောတွင်ဒေတာများကိုသင်သိမ်းဆည်းပါကဝက်ဘ်ဆာဗာမှဖိုင်ကိုတိုက်ရိုက်တိုက်ရိုက်ကြည့်ရှုခြင်းမပြုရန်သေချာအောင်လုပ်ပါ။ ဥပမာအားဖြင့်, သင် access ကိုကန့်သတ်ရန် .htaccess ဖိုင်များကိုသုံးနိုင်သည်။
<FilesMatch "secret\.php$">
Deny from all
</FilesMatch>
တနည်းအားဖြင့်ဖိုင်ကို Non-Public Directory တွင်နေရာချထားခြင်းနှင့်ပရိုဂရမ်မှတစ်ဆင့်ဝင်ရောက်ခွင့်ကိုထိန်းချုပ်ပါ။
__halt_compiler () ကို အသုံးပြု. confalt_compiler () ကို အသုံးပြု. Self-Extracted Php script ကိုမည်သို့တည်ဆောက်ရမည်ကိုပြသသည့်ရိုးရှင်းသောဥပမာတစ်ခုရှိသည်။
<?php
$configData = file_get_contents(__FILE__, false, null, __COMPILER_HALT_OFFSET__);
$config = unserialize($configData);
echo "ဒေတာဘေ့စ်အိမ်ရှင်: " . $config['db_host'];
__halt_compiler();
a:1:{s:7:"db_host";s:9:"gitbox.net";}
အထက်ပါကုဒ်တွင် configuration serialization ကို PHP file ၏အဆုံးအထိဖြည့်စွက်ပြီး Runtime deserialization မှတဆင့် configuration data များကိုရယူရန်။ ဒါကလုံခြုံပြီးပြောင်းလွယ်ပြင်လွယ်ဖြစ်ပါတယ်။
__HALT_CHPILER () သည် နေ့စဉ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်မကြာခဏအသုံးပြုသောအင်္ဂါရပ်မဟုတ်သော်လည်းအချို့သောအဆင့်မြင့်အသုံးပြုမှုများတွင်အလွန်အစွမ်းထက်သည်။ ယင်း၏မူများကိုကျွမ်းကျင်စေခြင်းနှင့်၎င်းတို့ကိုကောင်းစွာအသုံးပြုခြင်းသည်ကုဒ်လုံခြုံရေးကိုတိုးတက်စေရုံသာမက PHP အသုံးပြုမှုနယ်နိမိတ်များကိုလည်းတိုးချဲ့နိုင်သည်။