လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP တွင် output ကိုဖမ်းယူရန် ob_get_controcents ကိုအသုံးပြုနည်း ()

PHP တွင် output ကိုဖမ်းယူရန် ob_get_controcents ကိုအသုံးပြုနည်း ()

gitbox 2025-05-31

output ကိုကြားခံဆိုတာဘာလဲ။

ပုံမှန်အားဖြင့် ပဲ့တင်သံ သို့မဟုတ်အခြား output command များသည် client ကို client (browser) သို့တိုက်ရိုက်ပေးပို့လိမ့်မည်။ သို့သော် output buffering ကိုဖွင့်ပြီးနောက်တွင် output ကိုချက်ချင်းပေးပို့လိမ့်မည်မဟုတ်ပါ, သို့သော်ကြားခံရှင်းလင်းမှုမရောက်မှီသို့မဟုတ် script ကိုမပြီးမချင်းထုတ် 0 င်မည်ဖြစ်ပြီး, ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည် script ပြေးနေစဉ်အတွင်း output ပါဝင်မှုကိုဖမ်းယူခြင်း,


ob_get_contentents ၏အခန်းကဏ် z

ob_get_contents () ကို လက်ရှိ output buffer ရှိအကြောင်းအရာများကိုရရှိရန်နှင့် string ကိုပြန်ပို့ရန်အသုံးပြုသည်။ output buffering ကို enable မလုပ်ပါက function ကိုခေါ်ဆိုခြင်းက မှားယွင်းစွာ ပြန်ပို့လိမ့်မည်။


မှန်ကန်သောအသုံးပြုမှုဥပမာ

 <?php
// output ကိုကြားခံဖွင့်ပါ
ob_start();

// Analog output ကိုအကြောင်းအရာ
echo "ဒါကကြားခံမှာပါ。";

// Buffer အကြောင်းအရာကိုရယူပါ
$content = ob_get_contents();

// အကြောင်းအရာဖြစ်စဉ်ကို,ဥပမာအားဖြင့် string ကိုအစားထိုးပါ
$processedContent = str_replace("ကြားခံ", "cache area ရိယာ", $content);

// 清空并关闭ကြားခံ(မလုပ်မနေရမဟုတ်သော,ကိုလည်းအသုံးပြုနိုင်ပါတယ် ob_end_flush() တိုက်ရိုက် output ကို)
ob_end_clean();

// လက်ဖြင့်ပြုပြင်ထားသောအကြောင်းအရာများကိုထုတ်ယူပါ
echo $processedContent;
?>

အပေါ်ကဥပမာမှာ -

  1. ob_start ကိုသုံးပါ။

  2. ECHO ကို အသုံးပြု. contents များကို output ကို buffer တွင်သိမ်းထားသည်။

  3. Ob_get_contents () မှတဆင့် variable ကို $ content မှ buffer အကြောင်းအရာကိုဖတ်ပါ။

  4. Content ကို $ Processcontent ကို ရရန် string နှင့်အစားထိုးပါ။

  5. OB_END_CLEAN ကို သုံး. အကြောင်းအရာများကိုထပ်ခါတလဲလဲထုတ်ယူခြင်းကိုကာကွယ်ရန်ကြားခံကိုရှင်းလင်းရန်နှင့်ပိတ်ရန်။

  6. နောက်ဆုံးအနေနဲ့ပြုပြင်မွမ်းမံအကြောင်းအရာထုတ်ယူ။


လက်တွေ့ကျသော application အခြေအနေများ

1 ။ Capture Template Rendering ရလဒ်များ

အကယ်. သင်သည်ရိုးရှင်းသော PHP Template Rendering ကိုအသုံးပြုပါက template output ကို အသုံးပြု. template output ကိုဖမ်းယူလိုပါကသို့မဟုတ်၎င်းကိုပြုပြင်ပြောင်းလဲရန်သို့မဟုတ်ပြုပြင်မွမ်းမံခြင်း, output ကိုကြားခံသည်အလွန်အသုံးဝင်သည်။

 <?php
ob_start();
include 'template.php';  // Template File output ကို HTML
$html = ob_get_contents();
ob_end_clean();

// မှန်သော $html သိုကာတာ、compression သို့မဟုတ်အခြားအပြောင်းအလဲနဲ့
file_put_contents('cache/page.html', $html);

// နောက်ဆုံးတွင်လုပ်ငန်းစဉ်ကိုစာမျက်နှာ output
echo $html;
?>

2 ။ တတိယပါတီစာကြည့်တိုက်၏ထွက်ရှိလုပ်ငန်းစဉ်

အချို့သောတတိယပါတီစာကြည့်တိုက်များသည်အကြောင်းအရာများကိုတိုက်ရိုက်ထုတ်လွှင့်မည်ဖြစ်သော်လည်းသင်ဤရလဒ်များ,

 <?php
ob_start();
third_party_function();  // တိုက်ရိုက် output ကို内容的函数
$output = ob_get_contents();
ob_end_clean();

// ဥပမာအားဖြင့်ထုပ်ပိုးသည် JSON ပုံစံပြန်ပို့ပါ
echo json_encode(['data' => $output]);
?>

မှတ်သားရန်အရာ

  • ob_get_contentents ကိုအသုံးမပြုခင် () Buffer ကိုဖွင့်ထားတာသေချာအောင်လုပ်ရမယ် ( ob_start) လို့ခေါ်တယ်

  • OB_ENT_CLEAN () ကိုခေါ်ဆိုခြင်းအကြောင်းအရာကိုမပါ 0 င်ဘဲကြားခံကိုပိတ်ပြီးရှင်းလင်းနိုင်သည်။ ob_end_flush () ကိုခေါ်ခြင်း () သည်ကြားခံနှင့်ထွက်ပေါ်လာခြင်းကိုပိတ်လိမ့်မည်။

  • output buffer ကိုအသိုက် လုပ်. ob_get_controments () သည် လက်ရှိတက်ကြွသောကြားခံ၏ပါ 0 င်မှုကိုသာရရှိသည်။


ကောက်ချက်

ob_get_contents () PHP output process ကိုထိန်းချုပ်ရန်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။ output buffering ယန္တရားနှင့်ပေါင်းစပ်။ template ကိုဖမ်းယူခြင်း, output cache နှင့်တက်ကြွသောအကြောင်းအရာအစားထိုးခြင်းကဲ့သို့သောအဆင့်မြင့်လုပ်ဆောင်မှုများကိုရှာဖွေနိုင်သည်။ အဆိုပြုလွှာကြားခံများ၏အခြေခံမူများနှင့်အသုံးပြုမှုနည်းလမ်းများကိုကျွမ်းကျင်စေခြင်းက PHP output ကိုကျော်လွှားနိုင်အောင်သင့်ရဲ့ထိန်းချုပ်မှုကိုများစွာမြှင့်တင်ပေးလိမ့်မည်။