한글줄바꾸기 또는 utf-8 wordwrap

by 조쉬 posted Apr 12, 2014
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
엄청난 코드의 삽질과 검색결과 완벽하게 돌아 가는 wordwrap 함수를 찾았습니다.
여기 tip&tech 에서 wordwrap 에 관한 글은 다 읽었습니다만..
가장많이 쓰는 인코딩방식인 utf-8 에서는 다른분께서 만드신 함수는 다 깨져 버리더군요.
물론 다른 인코딩방식은 실험 안 해 봤습니다.

이 코드는 php.com 에 tjomi4 님께서 wordwrap() 함수 manual 에 덧붙인 글에 있었습니다.
그럼 잘 쓰시구요.. 즐 코딩..

// # usage: utf8_wordwrap("text",3,"
");
// # by tjomi4`, thanks to SiMM.
// # www.yeap.lv
// modified by DJang
public function utf8_wordwrap($str,$len,$what){

    $from=0;
    $str_length = preg_match_all('/[x00-x7FxC0-xFD]/', $str, $var_empty);
    $while_what = round($str_length / $len);
    while($i <= $while_what){
        $string = preg_replace('#^(?:[x00-x7F]|[xC0-xFF][x80-xBF]+){0,'.$from.'}'.
     '((?:[x00-x7F]|[xC0-xFF][x80-xBF]+){0,'.$len.'}).*#s',
     '$1',$str);
        $total .= $string.$what;
        $from = $from+$len;
        $i++;
    }
    return $total;
}