โดย mindphp » 25/07/2012 6:10 pm
ตัดข้อความขึ้นบรรทัดใหม่ UFT8 wordwrap ตามจำนวนข้อความ
ปกติ wordwrap() ใช้ตัดข้อความตามช่วงที่ต้องการ โดยไม่ตัดกลางข้อความ คือจะนับและเจอช่องว่าแล้วค่อยตัด แต่จะมีปัญหา กับ ข้อความที่เป็น UTF8
ต้องเขียน function นี้ขึ้นมาใช้แทน
โค้ด: เลือกทั้งหมด
function utf8_wordwrap($string, $width=75, $break="\n", $cut=false)
{
if($cut) {
// Match anything 1 to $width chars long followed by whitespace or EOS,
// otherwise match anything $width chars long
$search = '/(.{1,'.$width.'})(?:\s|$)|(.{'.$width.'})/uS';
$replace = '$1$2'.$break;
} else {
// Anchor the beginning of the pattern with a lookahead
// to avoid crazy backtracking when words are longer than $width
$pattern = '/(?=\s)(.{1,'.$width.'})(?:\s|$)/uS';
$replace = '$1'.$break;
}
return preg_replace($search, $replace, $string);
}
function นี้มาจาก phpBB3
ตัดข้อความขึ้นบรรทัดใหม่ UFT8 wordwrap ตามจำนวนข้อความ
ปกติ wordwrap() ใช้ตัดข้อความตามช่วงที่ต้องการ โดยไม่ตัดกลางข้อความ คือจะนับและเจอช่องว่าแล้วค่อยตัด แต่จะมีปัญหา กับ ข้อความที่เป็น UTF8
ต้องเขียน function นี้ขึ้นมาใช้แทน [code=php]
function utf8_wordwrap($string, $width=75, $break="\n", $cut=false)
{
if($cut) {
// Match anything 1 to $width chars long followed by whitespace or EOS,
// otherwise match anything $width chars long
$search = '/(.{1,'.$width.'})(?:\s|$)|(.{'.$width.'})/uS';
$replace = '$1$2'.$break;
} else {
// Anchor the beginning of the pattern with a lookahead
// to avoid crazy backtracking when words are longer than $width
$pattern = '/(?=\s)(.{1,'.$width.'})(?:\s|$)/uS';
$replace = '$1'.$break;
}
return preg_replace($search, $replace, $string);
} [/code]
function นี้มาจาก phpBB3
:-D