วันนี้นำเทคนิคดีๆ ของ PHP ในการ นับจำนวนตัวอักษร ของข้อความ ภาษาไทย แบบ UTF-8 ครับ ซึ่งบางคนอาจเจอปัญหานี้ คือใช้ strlen() แล้วเอ๊ะ !! ทำไมตัวอักษรมันเกิน เราลองมาดู Source Code กันครับ
CODE FUNCTION
function utf8_strlen($str)
{
$c = strlen($str);
$l = 0;
for ($i = 0; $i < $c; ++$i)
{
if ((ord($str[$i]) & 0xC0) != 0x80)
{
++$l;
}
}
return $l;
}
ตัวอย่างการใช้
<?php
function utf8_strlen($str)
{
$c = strlen($str);
$l = 0;
for ($i = 0; $i < $c; ++$i)
{
if ((ord($str[$i]) & 0xC0) != 0x80)
{
++$l;
}
}
return $l;
}
echo utf8_strlen("ดีครับ"); //แสดงผลจะได้ 6
$str = "อ่านง่ายดี";//นำตัวแปรมาเก็บข้อความ
echo utf8_strlen($str); //แสดงผลจะได้ 10
?>
เพี่ยงเท่านี้เราก็จะหมดปัญหากวนใจในการนับตัวอักษรภาษาไทยแล้วน่ะครับ