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

fgetsss ကြောင့်ဖြစ်ရတဲ့အလုံးစုံထက်မြက်သောကြမ်းတမ်းပြ problem နာကိုဘယ်လိုရှောင်ရှားမလဲ။ လက်တွေ့ကျသောဖြေရှင်းနည်းများ

gitbox 2025-08-27
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// ဤအပိုင်းသည်ဆောင်းပါး၏အကြောင်းအရာနှင့်မသက်ဆိုင်ပါ,ဘုံဖွဲ့စည်းမှုသို့မဟုတ်မှတ်ချက်များကိုနေရာချရန်အသုံးပြုနိုင်ပါသည်</span></span><span>
</span><span><span class="hljs-comment">// ဥပမာအားဖြင့်:Consinants ကိုသတ်မှတ်ပါ、configuration ဖိုင်များကိုဖွင့်ပါ။</span></span><span>
</span><span><span class="hljs-title function_ invoke__">define</span></span><span>(</span><span><span class="hljs-string">'APP_NAME'</span></span><span>, </span><span><span class="hljs-string">'ဘာသာမျိုးစုံပြုပြင်ထုတ်လုပ်ရေးကိရိယာများ'</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>

<hr>

<h1>ဘယ်လိုရှောင်ရှားရမလဲ fgetss မျိုးစုံသောကြမ်းတမ်းသောပြ problems နာများဖြစ်ပေါ်လာသည်?လက်တွေ့ကျသောဖြေရှင်းနည်းများ</h1>

<p>တည်နေ PHP အလယ်ပိုင်း,<code></span><span><span class="hljs-title function_ invoke__">fgetss</span></span><span>()

2 ။ PHP တွင်မှန်ကန်သော encoding ကိုသတ်မှတ်ပါ

အကြောင်းအရာကိုဖတ်ပြီးနောက် MB_ConVert_encoding () ကိုသုံးနိုင်သည်။

 &lt;?php
</span><span><span class="hljs-variable">$handle</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fopen</span></span><span>(</span><span><span class="hljs-string">'multilang.txt'</span></span><span>, </span><span><span class="hljs-string">'r'</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$handle</span></span><span>) {
    </span><span><span class="hljs-keyword">while</span></span><span> ((</span><span><span class="hljs-variable">$line</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fgetss</span></span><span>(</span><span><span class="hljs-variable">$handle</span></span><span>, </span><span><span class="hljs-number">4096</span></span><span>)) !== </span><span><span class="hljs-literal">false</span></span><span>) {
        </span><span><span class="hljs-comment">// ဖိုင် encoding ကိုယူဆ GBK,လှည့် UTF-8</span></span><span>
        </span><span><span class="hljs-variable">$utf8Line</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_convert_encoding</span></span><span>(</span><span><span class="hljs-variable">$line</span></span><span>, </span><span><span class="hljs-string">'UTF-8'</span></span><span>, </span><span><span class="hljs-string">'GBK'</span></span><span>);
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$utf8Line</span></span><span> . </span><span><span class="hljs-string">"&lt;br&gt;"</span></span><span>;
    }
    </span><span><span class="hljs-title function_ invoke__">fclose</span></span><span>(</span><span><span class="hljs-variable">$handle</span></span><span>);
}
?&gt;

MB_COCVert_encoding ၏တတိယမြောက် pareter သည်ဖိုင်၏မူလ encoding ဖြစ်သည်။ ပထမနှင့်ဒုတိယအကြိမ်အချက်မှာပထမနှင့်ဒုတိယအကြိမ်ဖြစ်သည်။

3 ။ စာမျက်နှာ encoding set

ဥပမာ - output hTML စာမျက်နှာတွင်မှန်ကန်သော encoding encoding ကြေငြာချက်တစ်ခုရှိကြောင်းသေချာပါစေ။

 &lt;meta charset=</span><span><span class="hljs-string">"UTF-8"</span></span><span>&gt;

ဤနည်းအားဖြင့်ဘရောင်ဇာသည် encoding encoding ကိုမှန်ကန်စွာခွဲခြားသတ်မှတ်ပြီးအမှိုက်များကုဒ် display ကိုရှောင်ရှားနိုင်သည်။

4 ။ Encoding ကိုရှာဖွေရန် PHP built-in function များကိုသုံးပါ

သင် mb_detect_encoding () ကို သုံးနိုင်သည်။

 &lt;?php
</span><span><span class="hljs-variable">$line</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fgetss</span></span><span>(</span><span><span class="hljs-variable">$handle</span></span><span>, </span><span><span class="hljs-number">4096</span></span><span>);
</span><span><span class="hljs-variable">$encoding</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_detect_encoding</span></span><span>(</span><span><span class="hljs-variable">$line</span></span><span>, [</span><span><span class="hljs-string">'UTF-8'</span></span><span>, </span><span><span class="hljs-string">'GBK'</span></span><span>, </span><span><span class="hljs-string">'BIG5'</span></span><span>], </span><span><span class="hljs-literal">true</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$encoding</span></span><span> !== </span><span><span class="hljs-string">'UTF-8'</span></span><span>) {
    </span><span><span class="hljs-variable">$line</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_convert_encoding</span></span><span>(</span><span><span class="hljs-variable">$line</span></span><span>, </span><span><span class="hljs-string">'UTF-8'</span></span><span>, </span><span><span class="hljs-variable">$encoding</span></span><span>);
}
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$line</span></span><span>;
?&gt;

5 ။ fgetys မသုံးပါနှင့် ()

အကယ်. သင်သည် HTML tags များကိုစီစစ်ခြင်းနှင့်သာလျှင် fgets_tags () နှင့်ပေါင်းစပ်ခြင်းများကိုအသုံးပြုခြင်းကိုစဉ်းစားပါ။

 &lt;?php
</span><span><span class="hljs-variable">$handle</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fopen</span></span><span>(</span><span><span class="hljs-string">'multilang.txt'</span></span><span>, </span><span><span class="hljs-string">'r'</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$handle</span></span><span>) {
    </span><span><span class="hljs-keyword">while</span></span><span> ((</span><span><span class="hljs-variable">$line</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fgets</span></span><span>(</span><span><span class="hljs-variable">$handle</span></span><span>)) !== </span><span><span class="hljs-literal">false</span></span><span>) {
        </span><span><span class="hljs-variable">$line</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strip_tags</span></span><span>(</span><span><span class="hljs-variable">$line</span></span><span>);
        </span><span><span class="hljs-comment">// encoding ပြောင်းလဲခြင်းဖြစ်စဉ်ကိုအထက်ကဲ့သို့တူညီသောဖြစ်ပါတယ်</span></span><span>
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$line</span></span><span>;
    }
    </span><span><span class="hljs-title function_ invoke__">fclose</span></span><span>(</span><span><span class="hljs-variable">$handle</span></span><span>);
}
?&gt;

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

  • ဖိုင်နှင့်စာမျက်နှာ encoding သည်တသမတ်တည်းဖြစ်သင့်သည်။ ၎င်းကို UTF မှ 8 ကို စည်းလုံးညီညွတ်စွာအသုံးပြုရန်အကြံပြုသည်
  • စာဖတ်ပြီးနောက် MB_ConVert_encoding () ကိုသုံးပါ။
  • fetgets ၏ encoding ယူဆချက် () နှင့် fgets () နှင့် strip_tags () နှင့် strip_tags () ကိုပေါင်းစပ်ခြင်းမှရှောင်ကြဉ်ပါ။
  • ဘရောင်ဇာသည်ပုံမှန်မဖြစ်မှီမှန်ကန်သော encoding ကိုကြေငြာရန်လိုအပ်သည်။

အထက်ပါနည်းလမ်းများမှတစ်ဆင့် developer များသည် fgetss () မှဖြစ်ရတဲ့စုံတွဲတစ်တွဲမှုပြ problem နာကိုထိထိရောက်ရောက်ရှောင်ရှားနိုင်ပါတယ်။