လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> ob_get_contentents () က asynchronous တောင်းဆိုမှု၏ရလဒ်များကိုဖမ်းယူခြင်းနှင့်ပြသသည်

ob_get_contentents () က asynchronous တောင်းဆိုမှု၏ရလဒ်များကိုဖမ်းယူခြင်းနှင့်ပြသသည်

gitbox 2025-05-28

ob_get_contents ()?

ob_get_contents () ကို လက်ရှိ PHP output buffer တွင်ပါ 0 င်သောအကြောင်းအရာများကိုရရှိရန်အသုံးပြုသည်။ OB_START () နှင့်ပေါင်းစပ်ထားသော () သည် browser သို့တိုက်ရိုက်ပေးပို့မည့်အစား output content ကိုပထမ ဦး စွာသိမ်းဆည်းရန်ခွင့်ပြုသည်။

 ob_start();  // output buffer ကိုဖွင့်ပါ
echo "Hello, world!";
$content = ob_get_contents();  // Buffer အကြောင်းအရာကိုရယူပါ
ob_end_clean();  // ကြားခံကိုပိတ်ပြီးအကြောင်းအရာများကိုရှင်းလင်းပါ
echo "Captured content: " . $content;

အထက်ပါကုဒ်သည် string output ကို echo ဖြင့် ဖမ်းယူနိုင်ပြီး၎င်းကို ဒေါ်လာအကြောင်းအရာ ဖြင့်သိမ်းဆည်းထားပြီး၎င်းကိုထုတ်ယူပါလိမ့်မည်။


အဘယ်ကြောင့် ob_get_contectents () ပြတ်တောင်းပြတ်တောင်းတောင်းဆိုမှုများ၏ရလဒ်များကိုဖမ်းယူရန် () ကိုအသုံးပြုသည်။

ယေဘူယျအားဖြင့်တောင်းဆိုမှုများသည်ယေဘုယျအားဖြင့် 0 န်ဆောင်မှုခံယူသူအား 0 န်ဆောင်မှုခံယူသူအား Javaxript (Ajax) မှတစ်ဆင့်တောင်းဆိုခြင်းနှင့်စာမျက်နှာကိုလန်းစေခြင်းမပြုဘဲပြန်လည်ရယူခြင်းရလဒ်ကိုရယူခြင်းကိုရည်ညွှန်းသည်။ PHP သည်ဤတောင်းဆိုမှုများကိုဆာဗာဘက်မှလုပ်ဆောင်သောအခါ၎င်းသည်တစ်ခါတစ်ရံတွင် output content ကိုဖမ်းယူရန်လိုအပ်သည်။

ob_get_contentents () သည်ပြတ်တောင်းပြတ်တောင်းတောင်းဆိုမှုများ၏ကွပ်မျက်မှုရလဒ်များ (ဥပမာ - template လုပ်ထားသောအကြောင်းအရာများအဖြစ်) ကိုကွပ်မျက်ခြင်းရလဒ်များကိုနောက်ခံတွင်ဖမ်းယူနိုင်ပြီးတုံ့ပြန်မှုတစ်ခုအနေဖြင့်ရှေ့တွင်ပြန်လာသည်။


PHP asynchronous တောင်းဆိုမှုနမူနာသင်ကြားရေး

Ajax မှတစ်ဆင့် Ajax မှတဆင့် async_handler.php သို့တောင်းဆိုမှုတစ်ခုပို့ပေးပါက PHP သည် dynamically dynamically content ကိုပြန်ပေးရန်လိုအပ်သည်ဆိုပါစို့။ output ကိုဖမ်းယူရန်နှင့်ဖုန်းခေါ်ဆိုသူထံသို့ပြန်ပို့ရန် OB_GET_CONTERS () ကို အသုံးပြုသည်။

async_handler.php

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

// asynchronous အပြောင်းအလဲနဲ့ယုတ္တိဗေဒတူအောင်ဖန်တီးပါ
echo "<div>ဤသည် asynchronously ပြန်လာသောအရာကိုဖြစ်ပါတယ်,လက်ရှိအချိန်:" . date('H:i:s') . "</div>";

// ရိုက်ကူးခံချက်များဖမ်းယူဖမ်းယူ
$content = ob_get_contents();

// Buffer ကိုအနီးကပ်သန့်ရှင်းပါ
ob_end_clean();

// တုံ့ပြန်မှုအဖြစ်ဖမ်းမိအကြောင်းအရာ output ကို
echo $content;
?>

Front-end Ajax ခေါ်ဆိုမှုဥပမာ (jQuery အပေါ်အခြေခံသည်)

 $.ajax({
    url: 'http://gitbox.net/async_handler.php',
    method: 'GET',
    success: function(response) {
        // ပြန်လာသောအကြောင်းအရာကိုစာမျက်နှာထဲသို့ထည့်ပါ
        $('#result').html(response);
    },
    error: function() {
        alert('တောင်းဆိုမှုပျက်ကွက်');
    }
});

ပြတ်တောင်းပြတ်တောင်းတောင်းဆိုချက်ကိုအကောင်အထည်ဖော်ရန် Curl နှင့်ပေါင်းစပ်ထားသည် (ဆာဗာဘေးထွက်ခေါ်ဆိုမှု)

တစ်ခါတစ်ရံတွင်ကျွန်ုပ်တို့သည် PHP တွင်ပြတ်တောင်းပြတ်တောင်းတောင်းဆိုမှုများကိုစတင်ရန် နှင့် ရလဒ်များကိုရရှိသောရလဒ်များကိုရလိုကြသည်

 <?php
function getAsyncContent($url) {
    ob_start();

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $result = curl_exec($ch);
    curl_close($ch);

    echo $result; // ထုတ်လုပ်ခြင်း curl အကြောင်းအရာကိုပြန်သွားပါ

    $content = ob_get_contents();
    ob_end_clean();

    return $content;
}

$url = "http://gitbox.net/async_handler.php";
$response = getAsyncContent($url);
echo "asynchronous တောင်းဆိုမှုဆာဗာအပေါ်ရလဒ်:" . $response;
?>

အကျဉ်းချုပ်

  • ob_get_contents () သည် PHP scripts ၏ output buffer အကြောင်းအရာများကိုထုတ်လွှင့်ပြီး output data များကို forexp process လုပ်ခြင်းကိုဖမ်းယူရန်ခွင့်ပြုသည်။

  • ပြတ်တောင်းပြတ်တောင်းတောင်းဆိုခြင်းအပြောင်းအလဲအတွက်, ရလဒ်များကိုအလွယ်တကူထိန်းချုပ်ရန်နှင့်ပြန်ပို့ရန်နှင့်ပြန်ပို့ရန်ကြားခံကို အသုံးပြု. ဖမ်းယူထားသည်။

  • ရှေ့တန်း Ajax တောင်းဆိုမှုတစ်ခုဖြစ်သည်ဖြစ်စေ PHP server သည်ပြတ်တောင်းပြတ်တောင်းခေါ်ဆိုမှု များ ,

ဤနည်းပညာကိုကျွမ်းကျင်စွာဖြင့်ရှုပ်ထွေးသောပြတ်တောင်းပြတ်တောင်းယုတ္တိဗေဒနှင့်ဆက်ဆံရာတွင်သင် ပို. အဆင်ပြေပါလိမ့်မည်။