ข้อมูลต่อไปนี้ ผมไปเจอมาจากเว็บไซต์ Thaicreate.com ซึ่งเป็นเครดิตของคุณ Peter Sticker ได้โพสเอาไว้ ผมได้เอามาใช้งานกับงานจริงเห็นว่ามีประโยชน์มาก และคิดว่าคงเอามาใช้บ่อยๆ เลยขอเอามาโพสเก็บไว้ เผื่อวันไหนใช้งานจะได้สะดวก และหากมีการปรับปรุง จะได้ใส่ไว้ที่เดียวกันครับ

ฟังก์ชั่น getMBStrSplit()

ฟังก์ชั่นสำหรับแบ่งข้อความเป็น Array (ปกติใช้ str_split() แต่สำหรับภาษาไทยแบบ UTF-8 จะมีปัญหาการแบ่ง)

// Convert a string to an array with multibyte string
function getMBStrSplit($string, $split_length = 1){
	mb_internal_encoding('UTF-8');
	mb_regex_encoding('UTF-8'); 
	
	$split_length = ($split_length <= 0) ? 1 : $split_length;
	$mb_strlen = mb_strlen($string, 'utf-8');
	$array = array();
	$i = 0; 
	
	while($i < $mb_strlen)
	{
		$array[] = mb_substr($string, $i, $split_length);
		$i = $i+$split_length;
	}
	
	return $array;
}

รายละเอียด

array getMBStrSplit ( string $string [, int $split_length = 1 ] )

string : ข้อความที่ต้องการนำมาแบ่ง

split_length : จำนวนความยาวของตัวอักษรที่จะแบ่ง (ค่าปริยายคือ 1)

ตัวอย่างการใช้ getMBStrSplit()

$str = "สวัสดีชาวโลก";

$arr1 = getMBStrSplit($str);
$arr2 = getMBStrSplit($str, 3);

print_r($arr1);
print_r($arr2);

หรือ

$arrDescription = getMBStrSplit($overview, 150);
echo $arrDescription[0];

ลองเอาไปใช้งานกันดูครับ ชอบมาก ขอบคุณคุณ Peter Sticker จาก Thaicreate อีกทีครับ

Comments