အထူးသဖြင့် PHP ပတ် 0 န်းကျင်တွင် Web output ကိုပြုလုပ်သောအခါ developer များကရှုပ်ထွေးသောဇာတ်ကောင်ပြသသည့်အမိန့်သို့မဟုတ်သရအက္ခရာများစသည့်ဒြပ်ပေါင်းများနှင့်ပုံမှန်မဟုတ်သောပြ problems နာများကြုံတွေ့ရနိုင်သည်။ PHP သည်ယရှေဒ္ဒပ်ဟုခေါ်သော function ကို Hebev () သည်ယုတ္တိအမိန့်မှ visual order rounds routing ည့်သည်များအဖြစ်ပြောင်းလဲရန်ရည်ရွယ်သည်။ ဤဆောင်းပါးသည်ဤပြ issue နာကိုနက်နက်နဲနဲလေ့လာပြီးဖြေရှင်းနည်းများပေးလိမ့်မည်။
PHP ၏ ချနေသော Function သည်ဟေဗြဲကြိုးများကိုယုတ္တိရှိသည့်အမှာစာအဖြစ်ပြောင်းလဲရန်အသုံးပြုသည်။ Syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
string hebrev(string $hebrew_text, int $max_chars_per_line = 0)
ဤလုပ်ဆောင်မှုသည်ဟေဗြဲအကြောင်းအရာများကိုဘယ်ဘက်မှထွက်ရှိသည့် output ပတ် 0 န်းကျင်နှင့်အံဝင်ခွင်ကျဖြစ်ရန်ကြိုးပမ်းမှုများပြုလုပ်ရန်ကြိုးစားသည်။ သို့သော်ဤလုပ်ဆောင်မှုနည်းလမ်းသည်အတော်အတန်အစစ်အမှန်ဖြစ်ပြီး Unicode ၏အင်္ဂါရပ်များအားလုံးကိုအပြည့်အဝမထောက်ပံ့နိုင်ပါ။
ဟီဘရူး, ဘုံဒြပ်ပေါင်းများတွင်ဗျည်းအက္ခရာများပါ 0 င်သောအက္ခရာများပါ 0 င်သောသရအက္ခရာများပါ 0 င်သည်။ ဤပေါင်းစပ်မှုများသည်ယူနီကုတ်တွင် "diacritical marks" ကို အသုံးပြု. "diacritical marks" ကို အသုံးပြု. အကောင်အထည်ဖော်သည်။ သို့သော်ထို ချိန်း ချက်ခြင်းသည်ဤ unicode ပေါင်းစပ်ယန္တရားများကိုနားမလည်သောကြောင့်,
ဒြပ်ပေါင်းများကိုစိတ်ဓာတ်ကျခြင်း,
ပေါင်းစပ်ဇာတ်ကောင်များ၏အမိန့်ကိုပြောင်းလဲ;
directionality ၏မမှန်ကန်ကြောင်းပြောင်းလဲခြင်း, စာသားတစ်စိတ်တစ်ပိုင်းပြောင်းဆိုမှုဖြစ်စေ,
ဥပမာအားဖြင့်:
$text = "???????"; // “Shalom”,Nikud သရသံပါရှိသည်
echo hebrev($text);
output ကိုလုံးဝဖတ်လို့မရနိုင်ပါ, သို့မဟုတ်သရအက်ခရာသင်္ကေတများရွေ့လျားနေသည်။
အများဆုံးအကြံပြုထားသည့်နည်းလမ်းမှာ ဟေဗဒပ် () လုံးဝ () ကိုလုံးဝမသုံးရန်နှင့်ပိုမိုခေတ်မီသောစာသားထုတ်ယူခြင်းစာကြည့်တိုက်များအဖြစ်အသုံးပြုသည်။
IntLCHAR (PHP Intl Extension) - directability ကိုမှန်ကန်စွာကိုင်တွယ်ရန် Unicode အထောက်အပံ့ကိုပေးပါ။
Mbstring : ဇာတ်ကောင်များကိုဖြတ်ခြင်းမခံရစေရန် Multibyte string ကိုပြုပြင်ခြင်းအတွက်အသုံးပြုသည်။
RTL Support HTML / CSS အဆင့်တွင် - ခေတ်သစ် browser များသည် thros ည့်သည်ကိုယ်နှိုက်ကိုပြုပြင်မွမ်းမံခြင်းမရှိဘဲ CSS မှတဆင့်စာသား onientation ကိုကောင်းစွာထိန်းချုပ်နိုင်သည်။
$text = "???????";
echo '<div dir="rtl" style="font-family: sans-serif;">' . htmlspecialchars($text, ENT_QUOTES, 'UTF-8') . '</div>';
ဤနည်းအားဖြင့် HTML နှင့် CSS မှတဆင့်ယူနီကုတ်သောစာလုံးများ၏သမာဓိကိုထိန်းသိမ်းထားပြီးလုပ်ဆောင်ချက် 0 င်ရောက်စွက်ဖက်မှုကိုရှောင်ရှားသည်။
ရှားရှားပါးပါးဖြစ်ရပ်များတွင် Hebev () သည် လိုအပ်ပါသည်။ စာသားကိုပထမ ဦး စွာ NFC ပုံမှန်ပြုလုပ်ခြင်းကိုပြုလုပ်ရန်အကြံပြုသည်။
$text = Normalizer::normalize("???????", Normalizer::FORM_C);
echo hebrev($text);
ဤအဆင့်သည်ဇာတ်ကောင်ရှုပ်ထွေးမှုများကိုအတိုင်းအတာတစ်ခုအထိအတိုင်းအတာတစ်ခုအထိလျှော့ချနိုင်သည်, သို့သော်၎င်းသည်ပြ problems နာအားလုံးကိုမဖြေရှင်းနိုင်ပါ။ ပုံမှန် PHP သည် PHP ကို Entl extensions များကိုဖွင့်ရန်လိုအပ်သည်။
တစ်ခါတစ်ရံပြနာသည် PHP ကိုယ်တိုင်မဟုတ်ဘဲ output terminal သို့မဟုတ် font support တွင်ဖြစ်သည်။ သေချာအောင်လုပ်ပါ
စာမျက်နှာ encoding ကို UTF-8 ကိုသတ်မှတ်သည်။
ဟေဗြဲနှင့် Nikudian သင်္ကေတများကိုအထောက်အကူပြုသောဖောင့်များကိုသုံးပါ (ဥပမာ noto sans ူမန်မိာိုမား),
Content-type: type type: text / html; Charset = UTF-8 ;
ပိုမိုအဆင့်မြင့်သောစိတ်ကူးတစ်ခုမှာ server သည် client client (browser) သို့လမ်းညွှန်ချက်ဖြင့်ထွက်ခွာရန်ဖြစ်သည်။ ဥပမာအားဖြင့်:
$text = "???????";
$url = "https://gitbox.net/example.php?text=" . urlencode($text);
ထို့နောက် RTL Page တွင် RTL PYSETTTTINGS ကိုဆာဗာဘက်တွင်အမိန့်ကိုပြောင်းလဲမည့်အစား RTL PYSETTTINGTTING ကိုလုပ်ဆောင်ပါ။
Hebev () function သည် rtl စာသားကိုရိုးရှင်းသောပတ်ဝန်းကျင်ရှိ RTL စာသားကိုကိုင်တွယ်နိုင်သော်လည်း, ခေတ်သစ် PHP ဖွံ့ဖြိုးတိုးတက်မှုသည်မလိုအပ်သောအဖျက်အယွင်းများကိုမလိုအပ်ပါ။ တိုတောင်းသောအနေဖြင့် Unicode ဖွဲ့စည်းပုံကိုထိန်းသိမ်းထားခြင်းနှင့်ရှုပ်ထွေးသောဘာသာစကားစာသားများနှင့်မျက်နှာချင်းဆိုင်မှန်ကန်သောလမ်းညွှန်အမှတ်အသားများကိုအသုံးပြုခြင်းသည်အကြောင်းအရာပြီးဆုံးခြင်းနှင့်အသုံးပြုသူအတွေ့အကြုံသည်တသမတ်တည်းကိုလိုက်နာရန်သော့ချက်ဖြစ်သည်။