대개 PHP로 게시판을 만든다거나, 최근게시물을 뽑아온다거나 하는 등의 작업을 할 때면
정해놓은 가로크기(wIdth) 보다 글자수가 많은 경우 이를 잘라주어야 하는 경우를 만날 때가 많습니다.

여기서 보편적으로 사용하는 몇가지 명령으로는

1. strlen  - 글자수를 계산해서
2. substr - 정해놓은 값만큼 자르거나
3. mb_substr - UTF-8의 경우는 mb_명령을 붙여서 자른 후에
4. echo ".." - 쩜쩜과 같은 텍스트를 마지막에 붙여넣어라

하는 4단계의 작업을 거치고는 하죠.

이를 귀찮게 생각한 나머지 일부 PHP개발자들은 글자수를 원하는대로 자를수 있는 갖가지의
Function 을 만들어서 사용해오곤 했으나.. PHP5 버전부터는 이러한 불편함을 한번에 해결해 줄수 있는
명령이 새로이 추가된 바 있으니.. 이 명령이 바로 mb_strimwidth 라 할 수 있겠습니다.

string mb_strimwidth ( string $str , int $start , int $width [, string $trimmarker [, string $encoding ]] )

위 구문이 php.net의 기본 구문이나. 이를 쉽게 풀어보면 아래와 같습니다.

mb_strimwidth('텍스트','시작위치','끝위치',"끝에붙일말","언어코드");

간략하게 기술해놓은 아래의 예제를 보시면 더욱 쉽게 이해하실 수 있습니다.

$text = '가나다라마바사';
$strim = mb_strimwidth($text, '0', '5', '...', 'utf-8');
echo $strim;

결과 = 가나다라마...

UTF-8로 정의된 $text의 값을 0번째 뒤부터 5번째 글자까지 자르고, 마지막에 ... 를 붙이는 일괄작업을 이 mb_strimwidth 명령 하나만으로 간편하게 지정할 수 있습니다.


$text = '가나다라마바사';
$strim = mb_strimwidth($text, '2', '6', '..', 'utf-8');
echo $strim;

결과 = 다라마바..

UTF-8로 정의된 $text의 값을 2번째 뒤부터 6번째 글자까지 자르고, 마지막에 .. 을 붙입니다.

대개 euc-kr로 정의된 문자는 한글 1자를 총 2개의 글자수를 가진 것으로 인식하기 때문에
보다 정확한 처리를 위해서라면 utf-8 로 변수값을 정의하는 것이 유리하다고 할 수 있습니다.

echo strlen("가나다"); => 6
echo mb_strlen("가나다"); => 3

따라서 PHP5 버전 이상의 환경이 구축된 서버를 이용하여 한글 자르기와 관련한 작업을 한다면
UTF-8을 기본언어셋으로 설정하여 mb_strimwidth 명령을 통해 작업의 간편화를 도모하시는 것이
여러모로 유리하다고 할 수 있겠죠?
Posted by 동원삼치
<< PREV : [1] : ... [4] : [5] : [6] : [7] : [8] : [9] : [10] : [11] : [12] : ... [15] : NEXT >>

BLOG main image
by 동원삼치

카테고리

전체 (15)
HTML (1)
JQUERY (7)
PHP (3)
APACHE (3)
JAVASCRIPT (1)

글 보관함