လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> ဖိုင်ကိုဒေါင်းလုတ်လုပ်ခြင်းမပြုမီ ob_clean function ကိုအဘယ်ကြောင့်အသုံးပြုပါ။ အထူးသဖြင့်ဘယ်လိုလုပ်ကိုင်ရမလဲ။

ဖိုင်ကိုဒေါင်းလုတ်လုပ်ခြင်းမပြုမီ ob_clean function ကိုအဘယ်ကြောင့်အသုံးပြုပါ။ အထူးသဖြင့်ဘယ်လိုလုပ်ကိုင်ရမလဲ။

M66 2025-07-10

PHP Development တွင်ကျွန်ုပ်တို့သည် File Download function ကိုထောက်ပံ့ရန်လိုအပ်သည်။ File Downloads များကိုအကောင်အထည်ဖော်သည့်အခါ, အထူးသဖြင့်ဖိုင်အမျိုးအစားကိုမဖော်ပြမီကျွန်ုပ်တို့သည်အခြားမလိုအပ်သောအကြောင်းအရာများသည် browser မှ output မှ output မဟုတ်ဘဲအမှားအယွင်းများကိုမလွယ်ကူပါ။ ဤအချိန်တွင် Ob_Clean function သည်အထူးအရေးကြီးသည်။

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

output buffer သည် PHP တွင်ယန္တရားတစ်ခုဖြစ်ပြီး scription uncountion လုပ်ထုံးလုပ်နည်းများကိုရှင်းလင်းပြီးသည်အထိ output data ကို cache လုပ်ထားသည့်ယန္တရားတစ်ခုဖြစ်သည်။ output buffer ကိုဖွင့်ပြီးနောက် PHP သည်ကြားခံတွင်ပထမဆုံးသော HTML, ECHO, Print စသဖြင့်) output ကို (HTML, ECHO, Print စသည်) ကို ဦး စွာသိမ်းထားလိမ့်မည်။ ob_flush () သို့မဟုတ် ob_end_flush ကဲ့သို့သောလုပ်ဆောင်မှုများကိုသင်ခေါ်ဆိုသည်အထိကြားခံရှိ contents သည် browser မှ output ဖြစ်လိမ့်မည်။

ဆိုလိုသည်မှာ (အမှားအယွင်းများ, HTML tags များစသည်တို့အပါအ 0 င်) output operations များ (အမှားအယွင်းများ, HTML tags များစသည်တို့အပါအ 0 င်) ကိုဆိုလိုသည်ဆိုပါစို့။

အဘယ်ကြောင့် ob_clean function ကိုသုံးပါ?

ဖိုင်ကိုကျွန်ုပ်တို့ download လုပ်သည့်အခါကျွန်ုပ်တို့သည်ဖိုင်အကြောင်းအရာကို browser ထဲသို့လွှင့်ရန်လိုအပ်သည်။ အကယ်. PHP script သည် (ဥပမာနေရာများ, သတိပေးချက်များ, သို့မဟုတ်အခြား HTML tags tags များကဲ့သို့သော) ဖိုင်များ output မတိုင်မီတွင်ပါ 0 င်ပါက,

OB_CLEAN function ၏ရည်ရွယ်ချက်မှာလက်ရှိ output buffer ကိုသန့်ရှင်းရေးလုပ်ပြီးပိတ်ရန်နှင့်ပိတ်ထားရန်ဖြစ်သည်။ ၎င်းသည်ကြားခံကိုရှင်းလင်းရုံသာမက Buffering ယန္တရားကိုပိတ်ထားသည်။

ob_clean function ကို၏တိကျသောစစ်ဆင်ရေး

၎င်းကိုအမှန်တကယ်အသုံးပြုသောအခါ download စစ်ဆင်ရေးမတိုင်မီ output မတိုင်မီ output ကိုသေချာစေရန်ဖိုင် download code ၏အစတွင် ob_end_clean ကို ခေါ်လေ့ရှိသည်။ Ob_end_clean ကို အသုံးပြု. output buffer ကိုသန့်ရှင်းရေးလုပ်ရန်ပုံမှန်အဆင့်များမှာဤတွင်ဖြစ်သည်။

  1. အစပြုခဲ့သူ - များသောအားဖြင့် PHP script ၏အစတွင် ob_start () ob_start () ob_start () ကို အသုံးပြု. ob_start () ကိုစတင်ပါလိမ့်မည်။

  2. Buffer ကိုသန့်ရှင်းရေးလုပ်ရန် OB_END_CLEAN ကို ခေါ်ပါ။ ဖိုင်ကိုဒေါင်းလုတ်လုပ်ခြင်းမပြုမီ Ob_end_clean () ကိုရှင်းလင်းရန် OB_END_CLEAN () ကို ရှင်းရှင်းလင်းလင်းခေါ်ပါ။

  3. Download header အချက်အလက်များကို download လုပ်ပါ။ PHP script တွင် HTTP တုန့်ပြန်မှုခေါင်းစီးကိုအသုံးပြုပါ

  4. file file content: ဖိုင်၏အကြောင်းအရာကို browser သို့ output လုပ်ရန် readfile () function သို့မဟုတ်အလားတူ function ကိုသုံးပါ။

နမူနာကုဒ်

File Download မလုပ်မီ ob_lem_clean ကိုသန့်ရှင်းရေးလုပ်ခြင်းနှင့် ob_end_clean ကို အသုံးပြု. ob_end_clean ကို အသုံးပြုခြင်းဥပမာတစ်ခုဖြစ်သည်။

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// output buffer ကိုဖွင့်ပါ</span></span><span>
</span><span><span class="hljs-title function_ invoke__">ob_start</span></span><span>();

</span><span><span class="hljs-comment">// output ကြားခံသန့်ရှင်းရေး,အပို output မရှိကြောင်းသေချာပါစေ</span></span><span>
</span><span><span class="hljs-title function_ invoke__">ob_end_clean</span></span><span>();

</span><span><span class="hljs-comment">// File Download အတွက်တုန့်ပြန်ခေါင်းစဉ်ကိုသတ်မှတ်ပါ</span></span><span>
</span><span><span class="hljs-variable">$file</span></span><span> = </span><span><span class="hljs-string">'path/to/your/file.zip'</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">'Content-Type: application/octet-stream'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">'Content-Disposition: attachment; filename="'</span></span><span> . </span><span><span class="hljs-title function_ invoke__">basename</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>) . </span><span><span class="hljs-string">'"'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">'Content-Length: '</span></span><span> . </span><span><span class="hljs-title function_ invoke__">filesize</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>));

</span><span><span class="hljs-comment">// output ဖိုင်အကြောင်းအရာ</span></span><span>
</span><span><span class="hljs-title function_ invoke__">readfile</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>);

</span><span><span class="hljs-comment">// End Script ကွပ်မျက်</span></span><span>
</span><span><span class="hljs-keyword">exit</span></span><span>();
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

အသေးစိတ်ရှင်းပြချက်:

  1. ob_start () - output buffer ကို enable ။ ဤနည်းအားဖြင့် output အားလုံးကိုသိမ်းဆည်းထားပြီးချက်ချင်း browser သို့ချက်ချင်းပေးပို့မည်မဟုတ်ပါ။

  2. ob_clean () - ကြားခံသန့်ရှင်းရေးကိုသန့်ရှင်းရေးလုပ်ပြီးသိမ်းဆည်းထားသောအကြောင်းအရာ output ကိုသေချာစေရန် output buffering function ကိုပိတ်ထားပါ။

  3. Header () - ဤဖိုင်သည်ဖိုင် download တောင်းဆိုမှုဖြစ်သည်ဟု Browser ကိုပြောပြရန်တုန့်ပြန်ခေါင်းစီးကိုသတ်မှတ်ပါ။ တိကျသော download လုပ်ထားသောဖိုင်အမည်ကို အကြောင်းအရာ - စိတ်ထား ဖြင့်သတ်မှတ်သည်။

  4. Readfile () - သတ်မှတ်ထားသောဖိုင်အကြောင်းအရာကို browser ကို output လုပ်ပြီး download process ကိုစတင်သည်။

  5. Exit () - ဖိုင်ကိုဒေါင်းလုပ်လုပ်ပြီးသည်နှင့် script ကိုချက်ချင်းအဆုံးသတ်ရန်နှင့်အခြားမလိုအပ်သောကုဒ်အတိုင်းဆက်လက်လုပ်ဆောင်ခြင်းကိုရှောင်ပါ။

အကျဉ်းချုပ်

ob_clean () ကိုသန့်ရှင်းရေးလုပ်ရန် OB_END_CLEAN () ကို အသုံးပြု. PHP တွင် Http Response Header ကိုမှန်ကန်စွာပြုလုပ်ရန်သေချာစေရန်ဖြစ်သည်။ output buffer ကိုသန့်ရှင်းရေးလုပ်ပြီးမှသာလျှင်ဖိုင်၏မှန်ကန်သော download နှင့်အတူအပိုဆောင်း output content ကိုမှရှောင်ရှားနိုင်ပါ။ ထို့ကြောင့် ob_clean () ကိုဆင်ခြင်တုံတရားအသုံးပြုခြင်းသည် File Download function ၏ပုံမှန်လည်ပတ်မှုကိုသေချာစေရန်အဓိကခြေလှမ်းတစ်ခုဖြစ်သည်။