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

ISESECREATETRUECOUCOUCOLOR ကိုအသုံးပြုသောအခါ "ခေါင်းစီးများကိုအမှားအယွင်းများမည်သို့ပေါ်လာသနည်း။ ဘယ်လိုဖြေရှင်းမလဲ

gitbox 2025-09-04

PHP ကိုအသုံးပြုမှုအတွက် PHP ကိုအသုံးပြုသောအခါ, ImagecreatetRuecolor function ကိုမကြာခဏစစ်မှန်သောအရောင်အလွတ်ပုံရိပ်ကိုဖန်တီးရန်အသုံးပြုသည်။ အဆိုပါ function ကိုသတ်မှတ်ထားသောအနံပုံနှင့်အမြင့်နှင့်အတူစစ်မှန်တဲ့အရောင်ပုံရိပ်အရင်းအမြစ်ကိုဖန်တီးရန်ဖြစ်သည်။ ဓာတ်ပုံရိုက်ကူးခြင်း၏ function တွင်တွေ့ရလေ့ရှိသည်။ ယေဘုယျအားဖြင့်ပြောရရင်ဒီ function ဟာပြ problems နာတွေမဖြစ်စေဘူး, ဒါပေမယ့်သင်က "ခေါင်းစီးများပို့ပြီးပြီ" အမှားတစ်ခုကြုံတွေ့ရပါက http header သတင်းအချက်အလက်သည်ကြိုတင်ပြင်ဆင်မှုများကြောင့်ဖြစ်သည်။ ထို့နောက်ကျွန်ုပ်တို့သည်ဤအမှားနှင့်မည်သို့ဖြေရှင်းရမည်ကိုအသေးစိတ်လေ့လာသုံးသပ်ပါလိမ့်မည်။

1 ။ "ခေါင်းစီးများပို့ပြီးပြီ" အမှားကဘာလဲ။

အကြောင်းအရာများကိုမဖော်ပြမီ http ခေါင်းစီးများကိုသင်ပို့ရန်ကြိုးစားသည့်အခါ "Header Semers" အမှားများသည်များသောအားဖြင့်ဖြစ်လေ့ရှိသည်။ PHP သည်အကြောင်းအရာ (HTML, ရုပ်ပုံများသို့မဟုတ်ဖိုင်များကဲ့သို့သောအကြောင်းအရာများမပို့မီအကြောင်းအရာအမျိုးအစား, ဇာတ်ကောင် encoding, cache control 'စသည့် HTTP Leader သတင်းအချက်အလက်များကိုပေးပို့ရမည်။ ဇာတ်ညွှန်းသည်အကြောင်းအရာများကိုထုတ်ဖော်ပြောဆိုခြင်းမပြုမီခေါင်းစဉ်သတင်းအချက်အလက်ပေးပို့ခြင်းကိုသင့်လျော်စွာမထိန်းချုပ်နိုင်ပါကဤအမှားကိုအစပျိုးလိမ့်မည်။

2 ။ "ခေါင်းစီးများပို့ဆောင်ပြီးပြီ" အမှားအယွင်းများ၏ဖြစ်ရပ်များ

ImagecreatetreColor ကို သုံးသောအခါရုပ်ပုံများကိုထုတ်လုပ်ရန်သင်ပုံမှန်အားဖြင့်တုံ့ပြန်မှုခေါင်းစီးကို header header ကို header header နှင့် header header ကို header header ကို သတ်မှတ်. သင် HTML Page အစား image ကို output လုပ်လိမ့်မည်ဟုဖော်ပြထားသည်။ အကယ်. HTML အကြောင်းအရာ (သို့) အခြားစာသားအချက်အလက်များသည် ImageCreatetuColorecolor ဟုမခေါ်မီ "Headers Send" အမှားတစ်ခုဖြစ်ပေါ်လိမ့်မည်။

အမှားများ၏အကြောင်းရင်းများတွင်:

  • Spaces သို့မဟုတ် Newsines: ဖိုင်၏ထိပ်ဆုံးသို့မဟုတ်အောက်ခြေရှိနေရာများ, Line Brome (Byte အမှာစာအမှတ်အသားများ) စသည်တို့သည် PHP ခွဲခြမ်းစိတ်ဖြာခြင်းမပြုမီမမြင်ရသောဇာတ်ကောင်အချို့ကို browser မှပေးပို့လိမ့်မည်။

  • HTML output: script တွင် script သည် html အကြောင်းအရာရှိပါက ImposecreatetEcolrecolor ကိုမခေါ်မီ PHP သည် HTTP header အချက်အလက်များကိုမပို့တော့ပါ။

  • Echo , Print_r သို့မဟုတ် Var_Dump ကဲ့သို့သော debo, print_r သို့မဟုတ် var_dump ကဲ့သို့သော debugging function များကို debugging function များကို debugging function များကို debugging function များကို debugging function များကို debugging function များကို debing လုပ်ခြင်းလုပ်ငန်းများ၌ပြုလုပ်နိုင်သည်။

3 ။ အဘယ်ကြောင့်၎င်းသည် isagecreatetuecolor ကို အကျိုးသက်ရောက်သနည်း။

ImagecreatetuColor ကို header နှင့် တွဲဖက်. အသုံးပြုရန်လိုအပ်ပါသည်။ ဥပမာအားဖြင့်, သင်သည် Image Data ကိုမပို့မီဤအရာသည် PNG ပုံရိပ်ဖြစ်သည်ဟုသင် browser ကိုပြောပြရန်လိုအပ်သည်။

 <span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">'Content-Type: image/png'</span></span><span>);
</span></span>

Imposeatetuecolor (သို့) ImpendPng ကိုမခေါ်မီ HTML, နေရာများသို့မဟုတ်အသစ်များကဲ့သို့သော) output ကိုပေးပို့ပါက PHP သည်ဤခေါင်းစီးများကိုထပ်မံပေးပို့နိုင်မည်မဟုတ်,

4 ။ "ခေါင်းစီးများပို့ပြီးသား" အမှားကိုမည်သို့ဖြေရှင်းရမည်နည်း။

ဤပြ problem နာကိုဖြေရှင်းရန် PHP script သည်ရုပ်ပုံလွှာမတိုင်မီမည်သည့်အရာကိုမဆိုမပို့နိုင်ကြောင်းသေချာစေရန်လိုအပ်သည်။ ဤတွင်အချို့သောဘုံဖြေရှင်းချက်များမှာ -

4.1 ။ ဖိုင်၏ထိပ်နှင့်အောက်ခြေရှိ whitespace ဇာတ်ကောင်များကိုစစ်ဆေးပါ

PHP ဖိုင်၏ထိပ်နှင့်အောက်ခြေတွင်နေရာများ, လိုင်းချိုးများ, အထူးသဖြင့် PHP သည် tag ကိုစတင်သည် <? PHP သည် tag ကိုစတင်သည်။ > tag ကိုအဆုံးသတ်သည်။ > အပိုနေရာများသို့မဟုတ်အသစ်များမရှိသေးပါ။ ဖိုင်တစ်ခုဖွင့်သောအခါ, ဖိုင်တစ်ခုဖွင့်သောအခါ,

4.2 ။ အဘယ်သူမျှမအစောပိုင်း output ကိုရှိပါတယ်သေချာ

ImagecreatetRuecolor နှင့် header () လုပ်ဆောင်ချက်များကိုမခေါ်မီမည်သည့်အရာက browser မှ output ကိုမှ output မှ output ကိုသေချာအောင်လုပ်ပါ။ ဤလုပ်ဆောင်ချက်များမတိုင်မီ echo , var_dump , သို့မဟုတ် print_r debug output ကိုရှောင်ပါ။ Debug အချက်အလက်သည် ob_start () နှင့် ob_end_end_flush () ကို ယာယီကြားခံရန်ထည့်သွင်းစဉ်းစားပါ။

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

</span><span><span class="hljs-comment">// သင့်ရဲ့ကုဒ်</span></span><span>
</span><span><span class="hljs-variable">$image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatetruecolor</span></span><span>(</span><span><span class="hljs-number">200</span></span><span>, </span><span><span class="hljs-number">200</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">'Content-Type: image/png'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagepng</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);

</span><span><span class="hljs-title function_ invoke__">ob_end_flush</span></span><span>();  </span><span><span class="hljs-comment">// output ကြားခံအဆုံးသတ်</span></span><span>
</span></span>

4.3 ။ output buffer ကိုသုံးပါ

အကယ်. သင်သည်သင်၏ဖိုင်တွင် output is imagecreatetuecolor ကို မခေါ်မီ output လုပ်ရန်လိုအပ်ပါက output buffering ကိုသုံးနိုင်သည်။ ob_start () function ကိုနှင့်အတူ PHP သည် output အားလုံးကို cache လုပ်ပြီး browser ကိုချက်ချင်းမပို့ပါ။ ဆိုလိုသည်မှာသင်သည်ပုံရိပ် output မဟုတ်မှီ debug သတင်းအချက်အလက်သို့မဟုတ်အခြားအကြောင်းအရာများကိုလွတ်လပ်စွာထုတ်ယူနိုင်သည်။

 <span><span><span class="hljs-title function_ invoke__">ob_start</span></span><span>();  </span><span><span class="hljs-comment">// output ကို buffering စတင်ပါ</span></span><span>

</span><span><span class="hljs-comment">// ကုဒ် output ကိုအပိုင်း</span></span><span>
</span><span><span class="hljs-variable">$image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatetruecolor</span></span><span>(</span><span><span class="hljs-number">300</span></span><span>, </span><span><span class="hljs-number">300</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">'Content-Type: image/png'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagepng</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);  </span><span><span class="hljs-comment">// image data ကိုပို့ပါ</span></span><span>

</span><span><span class="hljs-title function_ invoke__">ob_end_clean</span></span><span>();  </span><span><span class="hljs-comment">// ရှင်းလင်းစွာနှင့် buffering ပိတ်</span></span><span>
</span></span>

4.4 ။ PHP configuration file (php.ini) ကိုစစ်ဆေးပါ။

တစ်ခါတစ်ရံ PHP configuration file ရှိ output_buffering option သည် output buffer ၏အပြုအမူအပေါ်သက်ရောက်မှုရှိနိုင်သည်။ အထူးသဖြင့်ပိုမိုကြီးမားသောသို့မဟုတ် dynamically ထုတ်လုပ်ထားသောရုပ်ပုံများကိုကိုင်တွယ်သောအခါ၎င်းကိုဖွင့်ထားသည့် (သို့) စနစ်တကျပြင်ဆင်ပါ။

 <span><span><span class="hljs-attr">output_buffering</span></span><span> = </span><span><span class="hljs-literal">On</span></span><span>
</span></span>

5 ။ အကျဉ်းချုပ်

"ခေါင်းစီးများကိုပို့ပြီးပြီ" အမှားကိုကြုံတွေ့ရသောအခါသော့သည်ပုံမပို့မီသို့မဟုတ် header အချက်အလက်များကိုသတ်မှတ်ခြင်းမပြုမီ code တွင် output ရှိမရှိမရှိစစ်ဆေးရန်ဖြစ်သည်။ ဤပြ problem နာကိုများသောအားဖြင့်မလိုအပ်သောအဖြူရောင်ဖြူသောအက္ခရာများကိုထုတ်ယူခြင်း, မှန်ကန်သောနည်းလမ်းမှာမလိုအပ်ပါ။

ဤဆောင်းပါးမှတစ်ဆင့် isagecreatetrecolor ကို အသုံးပြုသောအခါ "ခေါင်းစီးများကိုပို့ပြီးပြီ" အမှားကိုသင်နားလည်နိုင်ပြီးဖွံ့ဖြိုးတိုးတက်မှုကာလအတွင်း၎င်းကိုထိရောက်စွာရှောင်ရှားနိုင်သည်။