ตัดข้อความขึ้นบรรทัดใหม่ UFT8 wordwrap ตามจำนวนข้อความ

ตอบกระทู้

รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

มุมมองที่ขยายได้ กระทู้แนะนำ: ตัดข้อความขึ้นบรรทัดใหม่ UFT8 wordwrap ตามจำนวนข้อความ

Re: ตัดข้อความขึ้นบรรทัดใหม่ UFT8 wordwrap ตามจำนวนข้อความ

โดย teaserz » 07/01/2016 11:29 am

กำลังมีปัญหาพอดีเลยครับ

ขอบคุณมากๆครับ :like:

Re: ตัดข้อความขึ้นบรรทัดใหม่ UFT8 wordwrap ตามจำนวนข้อความ

โดย mebby » 28/07/2012 5:16 pm

ขอบคุณสำหรับการแบ่งปันความรู้ดีๆค่ะ

ตัดข้อความขึ้นบรรทัดใหม่ UFT8 wordwrap ตามจำนวนข้อความ

โดย 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
:-D

ข้างบน