Quoteed_Printable_encode သည်အီးမေးလ်အကြောင်းအရာသို့မဟုတ် MIME encoding formats အချို့နှင့်ဆက်ဆံရာတွင်အသုံးပြုသော PHP function ကိုအသုံးပြုသည်။ အထူးသဖြင့် 7-bit ascii compativativity လိုအပ်သည့်ပတ်ဝန်းကျင်တွင်ဖော်ပြထားသော "ပုံနှိပ်နိုင်သော" ပုံဖော်နိုင်သော "ပုံနှိပ်စက်" အဖြစ် string များကို encode လုပ်ရန်အသုံးပြုသည်။ သို့သော်အမှန်တကယ်အသုံးပြုမှုတွင် developer များစွာသည်ဘုံပြ problem နာကိုကြုံတွေ့ရလိမ့်မည်။ ၎င်းသည် encoded content များ,
ဤဆောင်းပါးသည် quoted_enable_encode encoding encoding နှင့် developer များပြုလုပ်ရန်အတွက် developer များကဤလုပ်ဆောင်မှုကိုပိုမိုလွယ်ကူစွာအသုံးပြုရန်အတွက် QRESPREDIVID_enCode encoding နှင့်လက်တွေ့ကျသောဖြေရှင်းနည်းများကိုရှုပ်ထွေးစေသည်။
Quoted_Printable_enCode encoding ကိုအသုံးပြုပြီးနောက်တွင်အချို့သော developer များသည်အောက်ပါပြ problems နာများကိုကြုံတွေ့ရနိုင်သည်။
မူရင်း string တွင်အသစ်သောအနေအထားကိုပြောင်းလဲနိုင်သည်။
ပိုလျှံ = နိမိတ်လက်ခဏာသည်အသစ်အဆန်းမတိုင်မီပေါ်လာသည်။
အီးမေးလ်ဖောက်သည်အချို့သည်ဖြေရှင်းရန်,
ရှည်လျားသောလိုင်းများသည်အလိုအလျောက်ဖြည့ ်ဆည်းခြင်းများကိုအလိုအလျောက်ထည့်သွင်းထားပါသည်။
ဤပြ problems နာအများစုသည် encoding encoding and and romprinable_encode function အတွင်းရှိပုံမှန်အပြုအမူများမှရပ်တည်သည်။
RFC 2045 စံရှိ encoding_encode သည် RFC 2045 စံရှိ encoding သတ်မှတ်ချက်များကိုလိုက်နာသည်။
လိုင်းတစ်ခုစီ၏အများဆုံးအရှည်သည်စာလုံးရေ 76 လုံးဖြစ်ပြီး၎င်းတို့ထက်ကျော်လွန်ပါက soft line breaks များကိုအလိုအလျောက်ထည့်သွင်းပါ။ ( = \ r \ n )
ASCII မဟုတ်သောဇာတ်ကောင်များသို့မဟုတ်အထူးအက္ခရာများကို = xx ပုံစံသို့ပြောင်းလဲလိမ့်မည်။
လိုင်းအားလပ်ချိန်များနှင့်ဆက်ဆံရာတွင်မူရင်း string သည် မ မျှော်လင့်သော မျဉ်းကြောင်း ချိုးဖောက်ခြင်း အစားမမျှော်လင့်သောလိုင်းချိုးဖောက်မှုများကိုအသုံးပြုပါက,
ထို့ကြောင့် encoding မတိုင်မီ newline သို့ newline သို့စံသတ်မှတ်ရန်အလွန်အရေးကြီးသည် ။
လိုင်းအားပြတ်တောက်ခြင်းကိုရှောင်ရှားရန်လက်တွေ့ကျသောအကြံပေးချက်များနှင့်အကြံပြုချက်များကိုဤတွင်ဖော်ပြထားသည်။
encoding မတိုင်မီ, အသစ်စက်စက်ဇာတ်ကောင်များအားလုံးကို \ r ထပ်ကိန်း အဖြစ်တူညီစွာလုပ်ဆောင်သည်။
<span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">normalize_line_endings</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$string</span></span></span><span>) {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">preg_replace</span></span><span>(</span><span><span class="hljs-string">'/\r\n|\r|\n/'</span></span><span>, </span><span><span class="hljs-string">"\r\n"</span></span><span>, </span><span><span class="hljs-variable">$string</span></span><span>);
}
</span><span><span class="hljs-variable">$original</span></span><span> = </span><span><span class="hljs-string">"ဒါကပထမဆုံးလိုင်းပါ\nဒါကဒုတိယလိုင်းပါ\r\nဒါကတတိယလိုင်းပါ\rဒါကစတုတ်ထလိုင်းပါ"</span></span><span>;
</span><span><span class="hljs-variable">$normalized</span></span><span> = </span><span><span class="hljs-title function_ invoke__">normalize_line_endings</span></span><span>(</span><span><span class="hljs-variable">$original</span></span><span>);
</span><span><span class="hljs-variable">$encoded</span></span><span> = </span><span><span class="hljs-title function_ invoke__">quoted_printable_encode</span></span><span>(</span><span><span class="hljs-variable">$normalized</span></span><span>);
</span></span>
ဤအချက်သည်လိုင်းချိုးပုံစံသည်တသမတ်တည်းဖြစ်ပြီး encoding ပြီးနောက်မလိုအပ်သောချိုးခြင်းကိုရှောင်ရှားရန်သေချာစေသည်။
အဘယ်ကြောင့်ဆိုသော်လိုင်းတစ်ခုစီ၏အများဆုံးအရှည်မှာအက်ခရာ 76 လုံးဖြစ်ပြီးမူရင်းစာသားသည်ရှည်လျားလွန်းပါက soft line breaks ကိုအလိုအလျောက်ထည့်လိမ့်မည်။ ဤသည်အချို့သောအခြေအနေများတွင်ကျွန်ုပ်တို့မျှော်လင့်ထားသည့်အပြုအမူမဖြစ်နိုင်ပါ။
နည်းတစ်နည်းမှာအကြောင်းအရာကိုကိုယ်တိုင် segoding လုပ်ရန်သို့မဟုတ် encoding ပြီးနောက် soft line breaks process လုပ်ရန်ဖြစ်သည်။
<span><span><span class="hljs-variable">$encoded</span></span><span> = </span><span><span class="hljs-title function_ invoke__">quoted_printable_encode</span></span><span>(</span><span><span class="hljs-variable">$normalized</span></span><span>);
</span><span><span class="hljs-comment">// ပျော့မျဉ်းလိုင်းချိုးကိုအစားထိုးပါ,တ ဦး တည်းလိုင်းသို့ပေါင်းစည်း(မြင်ကွင်းပေါ်မူတည်သည်)</span></span><span>
</span><span><span class="hljs-variable">$cleaned</span></span><span> = </span><span><span class="hljs-title function_ invoke__">str_replace</span></span><span>(</span><span><span class="hljs-string">"=\r\n"</span></span><span>, </span><span><span class="hljs-string">''</span></span><span>, </span><span><span class="hljs-variable">$encoded</span></span><span>);
</span></span>
မှတ်စု: ဤချဉ်းကပ်နည်းသည် embedded text transfer ကဲ့သို့သော soft line break များပေါ်တွင်မှီခိုခြင်းမရှိသောဖြစ်ရပ်များအတွက်သင့်လျော်သည်။ သို့သော် Mime encoded mail body အတွက်မသင့်တော်ပါ ။
HTML မက်ဆေ့ခ်ျများကိုပြုပြင်သည့်အခါအပြည့်အ 0 HTML အကြောင်းအရာပြီးပြည့်စုံသော HTML အကြောင်းအရာများအတွက် Quoted_Printable_encode ကို သုံးပါက tag ကိုခွဲရန်သို့မဟုတ်ကျိုးပဲ့ရန်ဖွဲ့စည်းပုံကိုဖြစ်ပေါ်စေသည်။ စာသားအစိတ်အပိုင်းများကို သာ encode လုပ်ရန်သို့မဟုတ် Phpmailer ကဲ့သို့သောပရော်ဖက်ရှင်နယ်စာကြည့်တိုက်ကိုသုံးရန်အကြံပြုသည်။
<span><span><span class="hljs-keyword">use</span></span><span> </span><span><span class="hljs-title">PHPMailer</span></span><span>\</span><span><span class="hljs-title">PHPMailer</span></span><span>\</span><span><span class="hljs-title">PHPMailer</span></span><span>;
</span><span><span class="hljs-variable">$mail</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">PHPMailer</span></span><span>();
</span><span><span class="hljs-variable">$mail</span></span><span>-></span><span><span class="hljs-title function_ invoke__">isSMTP</span></span><span>();
</span><span><span class="hljs-comment">// ...</span></span><span>
</span><span><span class="hljs-variable">$mail</span></span><span>->CharSet = </span><span><span class="hljs-string">'UTF-8'</span></span><span>;
</span><span><span class="hljs-variable">$mail</span></span><span>->Encoding = </span><span><span class="hljs-string">'quoted-printable'</span></span><span>; </span><span><span class="hljs-comment">// အလိုအလျောက် encoding လုပ်ငန်းစဉ်</span></span><span>
</span></span>
PHP ၏ IMAP_8bit function သည်ကိုးကားထားသောပုံနှိပ်နိုင်သောပုံစံကိုထုတ်ပေးနိုင်သည် ။
<span><span><span class="hljs-variable">$encoded</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imap_8bit</span></span><span>(</span><span><span class="hljs-variable">$normalized</span></span><span>);
</span></span>
သို့သော်ဤလုပ်ဆောင်မှုသည် IMAP extension ပေါ်တွင်မူတည်သည်။ ဆာဗာပတ် 0 န်းကျင်သည်၎င်းကိုအထောက်အကူပြုမည်ကိုအတည်ပြုရန်လိုအပ်သည်။
Quoted_Printable_encode ကိုအီးမေးလ်ပြုပြင်ခြင်းနှင့်ဒေတာ encoding တွင်ကျယ်ကျယ်ပြန့်ပြန့်အသုံးပြုသည်။ အောက်ပါအချက်များသည် encoding နေစဉ်အတွင်းပြ the နာများကိုထိရောက်စွာရှောင်ရှားနိုင်သည်။
encoding မတိုင်မီ unified line ကိုချိုးဖျက်သည် \ r \ n ;
soft line breaks ၏ insertion ယန္တရားကိုအာရုံစိုက်ပါ။
မြင်ကွင်းနှင့်အညီကိုယ်တိုင်သန့်ရှင်းရေးလုပ်ခြင်းရှိမရှိဆုံးဖြတ်ပါ = \ r \ n ;
HTML အကြောင်းအရာများကို encode လုပ်ရန်သတိထားပါ။
ရင့်ကျက်သောမေးလ်စာကြည့်တိုက်သို့မဟုတ်အခြားရွေးချယ်စရာလုပ်ဆောင်ချက်များကို အသုံးပြု. စဉ်းစားပါ။
အထက်ပါကျွမ်းကျင်မှုများကိုကျွမ်းကျင်ပြီးသောအခါ, Quoted_Printable_encode ကို သုံးသောအခါသင်ပိုမိုအသုံးဝင်သည်။ encoding content သည်ပိုမိုတည်ငြိမ်ပြီးယုံကြည်စိတ်ချရသောဖြစ်သည်။