လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP သည် Setlocale () မည်သည့်အကျိုးသက်ရောက်မှုမရှိဘဲမဆိုခေါ်ဆို? ၎င်းသည် operating system နှင့်ဒေသများနှင့်သဟဇာတဖြစ်မှုဖြစ်နိုင်သည်

PHP သည် Setlocale () မည်သည့်အကျိုးသက်ရောက်မှုမရှိဘဲမဆိုခေါ်ဆို? ၎င်းသည် operating system နှင့်ဒေသများနှင့်သဟဇာတဖြစ်မှုဖြစ်နိုင်သည်

gitbox 2025-07-10

PHP ကို ​​အသုံးပြု. ဖွံ့ဖြိုးရေးလုပ်ငန်းစဉ်အတွင်း setlocale () function ကိုဇာတ်ညွှန်း၏ဒေသနှင့်ဒေသကိုသတ်မှတ်ရန်အသုံးပြုသည်။ ၎င်းသည်ပရိုဂရမ်၏ဒေသဆိုင်ရာပတ် 0 န်းကျင်ကိုပြောင်းလဲခြင်းဖြင့်ရက်စွဲများ, အချိန်, ငွေကြေးစသဖြင့်ရက်စွဲများ, အချိန်, ငွေကြေးစသဖြင့်ပြုလုပ်သောစွမ်းဆောင်ရည်ကိုသက်ရောက်စေသည်။ သို့သော်တစ်ခါတစ်ရံတွင် developer များက Setlocale () ဟုခေါ်သော်လည်းရလဒ်သည်ထိရောက်မှုမရှိပါ, ပုံမှန်ဒေသ (သို့) ဒေသသို့မဟုတ်ဒေသသို့မဟုတ်ဒေသဆိုင်ရာဆက်တင်များကမူ developer များကတွေ့ရှိရသည်။ ဒီတော့အကြောင်းပြချက်ကဘာလဲ။

1 ။ setlocale () function ကိုမိတ်ဆက်

Setlocale () ပရိုဂရမ်၏လက်ရှိဒေသကိုသတ်မှတ်ရန် PHP built-in function တစ်ခုဖြစ်သည်။ Syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 <span><span><span class="hljs-title function_ invoke__">setlocale</span></span><span>(</span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$category</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$locale</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> ...</span><span><span class="hljs-variable">$locales</span></span><span>): </span><span><span class="hljs-keyword">string</span></span><span>|</span><span><span class="hljs-literal">false</span></span><span>
</span></span>
  • $ အမျိုးအစား - lc_time (Time Format), lc_n_netary (ငွေကြေးပုံစံ), lc_numeric (Numeric format), lc_all (အားလုံး settings),

  • $ locale : သတ်မှတ်ထားမည့်ဒေသကိုသတ်မှတ်သည်။

  • Reward Value: အောင်မြင်သောနေရာကိုပြန်ပို့ပါ

ဥပမာအားဖြင့်, Setlocale () ကို DATEAND ဒေသကိုတရုတ်သို့သတ်မှတ်ရန်အသုံးပြုပါ။

 <span><span><span class="hljs-title function_ invoke__">setlocale</span></span><span>(LC_TIME, </span><span><span class="hljs-string">'zh_CN.UTF-8'</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">strftime</span></span><span>(</span><span><span class="hljs-string">"%A, %B %d, %Y"</span></span><span>);
</span></span>

ဤကုဒ်၏ရည်ရွယ်ချက်မှာရက်စွဲပုံစံကိုတရုတ်ဘာသာသို့သတ်မှတ်ရန်ဖြစ်သည်။

2 ။ ပြ the နာ၏အကြောင်းရင်း - operating system နှင့်ဒေသများသည်သဟဇာတဖြစ်သည်

Setlocale () သည် အကျိုးသက်ရောက်မှုမအောင်မြင်ပါကအသုံးအများဆုံးအကြောင်းပြချက်မှာ operating system သည်သက်ဆိုင်ရာဒေသများကို install လုပ်ခြင်းသို့မဟုတ်မထောက်ပံ့နိုင်ခြင်းဖြစ်သည်။ PHP သည်သတ်မှတ်ထားသောဒေသတစ်ခုအား operating system ၏ localating system ၏ပံ့ပိုးမှုဖြင့်လျှောက်ထားခြင်းရှိမရှိကိုဆုံးဖြတ်သည်။

1 ။ operating system ကိုဒေသသည်၎င်းကိုမထောက်ပံ့ပါ

Linux (သို့) MacOS စနစ်များတွင်တည်နေရာကိုပုံမှန်အားဖြင့် operating system ၏ localization support package မှပေးသည်။ အကယ်. PHP မှသိမ်းပိုက်ထားသောဒေသကို operating system တွင် install လုပ်မထားပါက Setlocale () သည် အကျိုးသက်ရောက်မည်မဟုတ်ပါ။ ဥပမာအားဖြင့်, zh_cn.utf-8 နေရာဒေသကိုအချို့သော operating system များတွင် install လုပ်ခြင်းမပြုရ, PHP ကိုဤဒေသသို့ပြောင်းရန်ပျက်ကွက်စေနိုင်သည်။

လက်ရှိ operating system မှထောက်ပံ့သောဒေသအားစစ်ဆေးရန်အောက်ပါ command ကိုသုံးနိုင်သည်။

  • Linux တွင်ပံ့ပိုးထားသောဒေသများစာရင်းကိုကြည့်ရှုရန် Command Locale -a ကို သင်အသုံးပြုနိုင်သည်။

  • MacOS တွင်သင် Locale -a ကို သုံးနိုင်သည်သို့မဟုတ် / usr / size / locale directory ရှိဘာသာစကားဖိုင်များကိုကြည့်ရှုနိုင်သည်။

ဒေသတစ်ခုပျောက်ဆုံးနေသည်ကိုသင်တွေ့ရှိပါက operating system ၏ Package Management Tool မှတဆင့်ဘာသာစကားအထုပ်ကို install လုပ်ရန်ကြိုးစားနိုင်သည်။ ဥပမာအားဖြင့် Ubuntu တွင်အောက်ပါ command ကို အသုံးပြု. တရုတ်ဘာသာစကားအထုပ်ကိုသင်တပ်ဆင်နိုင်သည်။

 <span><span>sudo apt-get install language-pack-zh-hans
</span></span>

2 ။ ဇာတ်ကောင်နေရာဒေသရှိပြ issues နာများကိုသတ်မှတ်ပါ

နောက်ထပ်ဖြစ်နိုင်ချေရှိသောပြ problem နာတစ်ခုမှာသဟဇာတမတူသောဇာတ်ကောင်ဖြစ်သည်။ ဥပမာအားဖြင့်, သင်၏ operating system သည် zh_cn တည်နေရာကိုထည့်သွင်းထားသော်လည်း UTF-8 encoding support တပ်ဆင်ထားပါက zh_cn.utf-8 ကို install လုပ်ထားပါက, ဤကိစ္စတွင်သက်ဆိုင်ရာဇာတ်ကောင် Set Support ကိုတပ်ဆင်ထားကြောင်းသေချာပါစေ။

3 ။ စနစ် configuration ပြ issues နာများ

အချို့သောဆာဗာပတ် 0 န်းကျင်တွင် PHP သည် operating system ၏ဒေသဆိုင်ရာ configuration ကိုဝင်ရောက်ရန်ခွင့်ပြုချက်မရှိပါ။ ဥပမာအားဖြင့် PHP ကို ​​docker ကွန်တိန်နာတစ်ခုတွင်အသုံးပြုပါကသင်ပျောက်ဆုံးနေသောဒေသများသို့မဟုတ်ခွင့်ပြုချက်ပြ problems နာများကိုသင်ကြုံတွေ့ရနိုင်သည်။ ယခုအချိန်တွင်သင်သည် PHP script သို့မဟုတ် server configuration တွင် locale သို့မဟုတ် server configuration တွင်သို့မဟုတ်ကွန်တိန်နာ configurations ကိုပြုပြင်ရန်သို့မဟုတ်ပိတ်ထားသည့်ဒေသဆိုင်ရာအထောက်အပံ့များတပ်ဆင်ရန်စဉ်းစားနိုင်သည်။

3 ။ ပြ the နာကိုဘယ်လိုဖြေရှင်းရမလဲ။

  1. operating system ၏ဒေသကိုစစ်ဆေးပါ Command Locale -A ကို အသုံးပြုပါ။ အကယ်. ၎င်းကိုမထောက်ပံ့ပါကသက်ဆိုင်ရာဘာသာစကားအထုပ်သို့မဟုတ်ဇာတ်ကောင်များကိုတပ်ဆင်ရန်လိုအပ်သည်။

  2. သင့်လျော်သောဒေသတစ်ခုတည်ဆောက်ခြင်း <br> <br> PHP တွင် Setlocale () ကို အသုံးပြုသည့်အခါဒေသတွင်း parameters များသည် operating system မှထောက်ပံ့သောဒေသနှင့်ကိုက်ညီကြောင်းသေချာအောင်လုပ်ပါ။ ဥပမာအားဖြင့်, zh_cn.utf-8 သည် operating system မှ install လုပ်ထားသည့်ဒေသနှင့်ကိုက်ညီသင့်သည်။

  3. PHP configurations ကိုစစ်ဆေးပါ PHP configuration file ( PHPP.ini ) ၏ချိန်ညှိချက်များ (php.ini) တွင် Setlocale () setlocale () ကို ကန့်သတ်ခြင်းသို့မဟုတ်ကာကွယ်ခြင်းမပြုရန်,

  4. ဆာဗာကို restart လုပ်ပါ အချို့ဖြစ်ရပ်များတွင်ဒေသတွင်းပြောင်းလဲမှုများသည်ဝက်ဘ်ဆာဗာကိုပြန်လည်စတင်ရန်အတွက်ပြန်လည်စတင်ရန်လိုအပ်သည်။ PHP-FPM, NGINX သို့မဟုတ် Apache 0 န်ဆောင်မှုကိုပြန်လည်စတင်ရန်ကြိုးစားနိုင်သည်။

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

PHP ၏ Setlocale () function သည်တစ်ခါတစ်ရံတွင်အကျိုးသက်ရောက်မှုမရှိသေးပေ။ များသောအားဖြင့် operating system သည်သတ်မှတ်ထားသောဒေသများတပ်ဆင်ခြင်းသို့မဟုတ်မထောက်ပံ့ပါ။ ဤပြ problem နာကိုဖြေရှင်းရန်လိုအပ်ပြီး operating system ၏နောက်ဆက်တွဲအထောက်အပံ့ကိုစစ်ဆေးရန်နှင့် PHP သည်ဤချိန်ညှိချက်များကိုလက်လှမ်းမီနိုင်အောင်ပြုလုပ်နိုင်သည်။ အကယ်. operating system တွင်သက်ဆိုင်ရာဘာသာစကားစာစဉ်မရှိပါက၎င်းကိုကိုယ်တိုင်တပ်ဆင်ပြီး PHP တွင်မှန်ကန်စွာဟုခေါ်နိုင်သည်။ ဤနည်းများဖြင့် Setlocale () မမှန်ကန်သောပြ the နာကိုဖြေရှင်းနိုင်ပြီး script သည်မျှော်လင့်ထားသည့်အတိုင်းလည်ပတ်သည်။