ayar club ဧ​ရာ​ ယူ​နီ​ကုဒ်​ဆိုင်​ရာ​စာ​လံုး​နှင့်​ ​ပတ်​သက်​သည့်​ ​သ​တင်း​များ​၊​ ​နည်း​ပ​ညာ​ဆိုင်​ရာ​ ​အ​ေထာက်​အ​ကူ​ြပု​ ေမး​ခွန်း​များအ​ြပင်​ ​ြမန်​မာ​ယူ​နီ​ကုဒ်​စာ​လံုး​များဆိုင်​ရာ​ ​ေမး​ခွန်း​များ​ကို​ ​အ​ေမး​၊​ ​အ​ေြဖ​​ ပံု​စံ​များ​ြဖင့်​ ​တင်​ဆက်​ေပး​ရန်​ ​စီ​စဥ်​ထား​ပါ​သည်​။ ​မ​ဂင်္လာ​အ​ေပါင်း​နှင့်​​ ြပည့်​စံု​နိုင်​ြက​ပါ​ေစ​ ayar club

Ayar Unicode Club's Question & Answer မှာ​ ​မိ​မိ​ သိ​လို​ေသာ​ ဧ​ရာ ြမန်​မာယူ​နီ​ကုဒ်​​စာ​လံု​း များ​ ​အ​ေြကာင်း​​ ေမး​ြမန်း​​နိုင်​​ြပီ​​ ြဖစ်​ပါ​သည်။​

Most popular tags

unicode ayar myanmar font encoding

php ြဖင့်​ ြမန်မာစာ ဘယ်လိုစီနိုင်မလဲခင်ဗျာ။

0 votes
php ြဖင့်​ ြမန်မာစာ ဘယ်လိုစီနိုင်မလဲခင်ဗျာ။
asked Mar 7, 2014 in ​ေထာက်​ကူ​ြပု by ayarclub (240 points)

1 Answer

0 votes

ြမန်မာစာ အ​ေြခခံစီြခင်း​ကို ​ေအာက်ပါ အတိုင်း​ php ကုဒ်​ေတွနဲ့​ စမ်း​ေရး​ြပီး​ သက်ဆိုင်ရာကုဒ်​ေတွမှာ တချက်ြခင်း​စီ ရှင်း​ြပ​ေပး​ထား​ပါတယ်ခင်ဗျာ။

 

<?php

/*
this is the array which is going to be ordered.
*/
$unorder_array = array('ကိုင်ဇာ','ေအာင်​မင်း','တွင်​ကယ်လ်','ေခမာ','ချစ်​​စမ်းေမာင်','စိုးလွင်​လွင်','ငယ်​ဆူး','ဩ​ရ​သ','ဪ​ဘ​ဝ','ေမ​သက်​ခိုင်','ေတး​ဆိုငှက်');
/*
this is the array for showing result
*/
$ordered_array = array();
/*
change default php encoding to utf-8
*/
mb_internal_encoding( 'UTF-8' );
/*
loop unordered array and check step by step
*/
foreach ($unorder_array as $value)
{
/* 
check the first character of the array contains "Myanmar Character" or not. The range is from U1000 to U109F.
*/
if(preg_match('/[\x{1000}-\x{109F}]+/u', mb_substr($value, 0, 1))) 
{
/*
except from Myanmar 3, Zawgyi and Ayar use normal ordering (i.e first comes first type). So the words such as ချင်း,ေကာင်း are not able to be arranged properly. so we skip one to three character finding consonants (from U1000 to U102A).
p.s: if you are trying to arrange for Zawgyi, you might wish to control some characters such as ရ & ရွ, န & နွ because ရ and short ရ are in different code points.
*/
for($i=0 ; $i<3 ; $i++)
{
if(preg_match('/[\x{1000}-\x{102A}]+/u', mb_substr($value, $i, 1)))
{
$ordered_array[mb_substr($value, $i, 1)][] = $value;      
break;
}
}
}
else
{
/*
use first character if the character is not "Myanmar Character".
*/
$ordered_array[mb_substr($value, 0, 1)][] = $value; 
}
}
 
/*
the result is still disorder. We just group words into same group. We need to arrange keys of the array. We use default function (ksort) for arranging. 
*/
ksort($ordered_array);
 
/*
Finish. Let's see the result compared to unordered one.
*/
?>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
 
<title> ြမန်မာအက္ခရာစီြခင်း</title>
<style>
@font-face
{
font-family:ayar;
src:local('ayar'),url('http://webfont.mmbay.org/fonts/ayar.ttf') format('truetype');
unicode-range: U+1000-U+109F, U+AA60-U+AA7B;
}
body
{
min-width: 100%;
width: 100%;
font-family: Ayar;
font-size: 16px;
background:#ebe8de;
}
.contentBox
{
min-width: 70%;
width: 70%;
height: auto;
margin: auto;
background: #fff;
padding: 10px;
}
</style>
</head>
<body>
<div class="contentBox">
<h1>မူလစာရင်း</h1>
<?php
foreach($unorder_array as $key => $value)
{
echo '<p>'.$value.'</p>';
}
?>
<h1>စီြပီးစာရင်း</h2>
<?php
foreach($ordered_array as $key=> $values)
{
foreach($values as $value)
{
echo '<p>'.$value.'</p>';
}
}
?>
<h1>စီြပီးစာရင်း(ကတ်တေလာက်ပံုစံ)</h2>
<?php
foreach($ordered_array as $key=> $values)
{
echo '<h2>'.$key.'</h2>';
foreach($values as $value)
{
echo '<p>'.$value.'</p>';
}
}
?>
</div>
</body>
</html>

 

answered Mar 7, 2014 by ayarclub (240 points)
edited Mar 7, 2014 by ayarclub
Ayar Myanmar Unicode Font
Zawgyi Font
MM3 Font
Ayar Online Editor
Ayar Online Converter
Ayar Online Dictionary
Ayar Myanmar Unicode Group