การหาความยาวของข้อความบน UTF-8
ความยาวของข้อความก็เป็นอีกปัญหาหนึ่งของ UTF-8 ที่ไม่สามารถใช้ strlen ในการอ่านความยาวที่ถูกต้องได้ เนื่องจาก UTF-8 มีการเก็บตัวอักษรที่กว้างกว่า Ansi ทำให้การหาความยาวโดยเฉพาะภาษาไทยผิดพลาด
ให้ใช้ strlen_utf8 แทนครับ
ฟังก์ชั่นนี้มีการใช้งานเหมือนกับ strlen ทุกประการครับ
ให้ใช้ strlen_utf8 แทนครับ
function strlen_utf8( $str )
{
$i = 0;
$count = 0;
$len = strlen( $str );
while ( $i < $len )
{
$chr = ord( $str[$i] );
$count++;
$i++;
if ( $i >= $len )
{
break;
};
if ( $chr & 0x80 )
{
$chr <<= 1;
while ( $chr & 0x80 )
{
$i++;
$chr <<= 1;
};
};
};
return $count;
};
ฟังก์ชั่นนี้มีการใช้งานเหมือนกับ strlen ทุกประการครับ