PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင် output buffering သည်အလွန်အရေးကြီးသော်လည်းမကြာခဏသတိမမူမိသောအင်္ဂါရပ်ဖြစ်သည်။ ဆင်ခြင်တုံတရားနှစ်ခုကို ob_list_handlers () နှင့် ob_get_contents () ကို အသုံးပြု. buffer အကြောင်းအရာကိုပိုမိုဂရုတစိုက် သုံး. စွမ်းဆောင်ရည်ပိုမိုကောင်းမွန်အောင်ပြုလုပ်နိုင်သည်။ ဤဆောင်းပါးသည်ဤဆောင်းပါးသည်ဤလုပ်ဆောင်ချက်နှစ်ခုကိုအသေးစိတ်ဖော်ပြရန်နှင့်၎င်းတို့၏အစွမ်းထက်သောစွမ်းအားကိုအသေးစိတ်ဖော်ပြရန်နှင့်သူတို့၏အင်အားကြီးစွမ်းအားကိုဥပမာအားဖြင့်ပြသပါလိမ့်မည်။
output buffering သည် PHP ကိုရည်ညွှန်းသည်။ script မှထုတ်လုပ်သော output ကို browser သို့တိုက်ရိုက်ပို့မည့်အစား script မှထုတ်လုပ်သော output ကို buffer ထဲသို့ထည့်သွင်းရန်ဖြစ်သည်။ ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည်အကြောင်းအရာများကိုပြုပြင်ခြင်း, output ကိုပြုပြင်ခြင်း, ဖိအားပေးခြင်း,
output buffering နှင့်သက်ဆိုင်သောဘုံလုပ်ဆောင်ချက်များပါဝင်သည်:
ob_list_handlers () နှင့်အပေါ်။
ob_list_handlers () output buffer handlers အသုံးပြုသောလက်ရှိစာရင်းအားလုံးကိုစာရင်းပြုစုရန်အသုံးပြုသည်။ များသောအားဖြင့်ရှုပ်ထွေးသော application များရှိ output stack ၏ status ၏ status ကို debugging သို့မဟုတ်အတည်ပြုရန်အတွက်အသုံးပြုခဲ့သည်။
ဥပမာ -
<?php
ob_start();
echo "အလည်အပတ်ခရီးမှလှိုက်လှဲစွာကြိုဆိုပါသည်:https://gitbox.net";
print_r(ob_list_handlers());
ob_end_flush();
?>
output ကိုဆင်တူသည် -
Array
(
[0] => default output handler
)
၎င်းသည်လက်ရှိကြားခံသည်ပုံမှန် output handler ကိုအသုံးပြုနေသည်ဟုဖော်ပြသည်။
ob_get_contents () သည် လက်ရှိကြားခံ၏ contents ကိုပြန်ပို့သော်လည်းကြားခံကိုမရှင်းလင်းပါ။ များသောအားဖြင့်ဖတ်ရန်, process သို့မဟုတ် output data များကိုဖတ်ရန်အသုံးပြုသည်။
ဥပမာ -
<?php
ob_start();
echo "<p>ဝမ်းသာစွာနှုတ်ဆက်ခြင်း <a href='https://gitbox.net'>GitBox</a>!</p>";
$content = ob_get_contents();
echo "<!-- စာမျက်နှာအကြောင်းအရာအရှည်:" . strlen($content) . " -->";
ob_end_flush();
?>
ဤဥပမာတွင်ကျွန်ုပ်တို့သည် Output lead for on Output ကိုစာမျက်နှာထဲသို့မှတ်ချက်ပေးရန်အချက်အလက်များကိုထည့်သွင်းပါ။
ဤလုပ်ဆောင်ချက်နှစ်ခုကိုအတူတကွအသုံးပြုခြင်းသည်လက်ရှိကြားခံအခြေအနေအပေါ် အခြေခံ. စာမျက်နှာမှထုတ်ယူခြင်းသို့မဟုတ်ရှုပ်ထွေးသောကြားခံများ၏အပြုအမူကို debing လုပ်ခြင်းကဲ့သို့သော output လုပ်ခြင်းကဲ့သို့သော output ကိုထိန်းချုပ်ရန်ခွင့်ပြုသည်။
ပြီးပြည့်စုံသောဥပမာ -
<?php
ob_start();
// စာမျက်နှာ output ကို Simulate
echo "<h1>GitBox - ပရော်ဖက်ရှင်နယ်ကုဒ် hosting ဝန်ဆောင်မှုများ</h1>";
echo "<p>ပိုမိုသိရှိလိုပါက ကျေးဇူးပြု. ကြည့်ရှုပါ <a href='https://gitbox.net/docs'>စာရွက်စာတမ်းစင်တာ</a>。</p>";
// လက်ရှိ Buffer Processor ကိုကြည့်ပါ
$handlers = ob_list_handlers();
echo "<pre>လက်ရှိ Buffer Processor: " . print_r($handlers, true) . "</pre>";
// လက်ရှိကြားခံအကြောင်းအရာကိုရယူပါ
$pageContent = ob_get_contents();
// output ကိုရိုးရှင်းတဲ့ချုံ့(အပိုနေရာများနှင့်လိုင်းချိုးဖယ်ရှားပါ)
$optimizedContent = preg_replace('/\s+/', ' ', $pageContent);
// ရှင်းလင်းသော buffering နှင့်ပြန်လည် optimized အကြောင်းအရာ re- output
ob_clean();
echo $optimizedContent;
ob_end_flush();
?>
ခွဲခြမ်းစိတ်ဖြာခြင်း
Buffering နှင့် output ကိုပါ 0 င်ပါ။
လက်ရှိကြားခံအခြေအနေကိုကြည့်ရှုရန် ob_list_handlers () ကို သုံးပါ။
ရရန် ob_get_contontents ကို သုံးပါ