« 매트릭스2 Reloaded | Main | 비갠뒤 하늘을 보면서 »

한글 깨끗하게 잘라내기

최근 코멘트 태그팁을 응용해서 코멘트 내용 일부가 보여지는 태그를 사용하고 있습니다. trim_to 어트리뷰트로 전달하는 값만큼 내용을 잘라주는데 문제는 한글이 깨끗하게 잘리지 않는다는 것입니다. 그래서 자료를 찾다가 한글 깨끗하게 자르기를 발견했습니다. 이걸 적용하기 위해 trim_to를 어디에서 사용하는지 검색해보니 lib/MT/Template/Context.pm의 288라인과 2091라인 두 곳에서 trim_to를 사용하는 것을 확인했습니다.

우선 288라인을 확인해보면 아래와 같습니다.

if (my $len = $local_args{trim_to}) {
    $str = substr $str, 0, $len if $len < length($str);
}

위의 내용을 아래와 같이 수정합니다.

if (my $len = $local_args{trim_to}) {
    if ($len < length($str)){
        $str = substr $str, 0, $len ;
        $str =~ s/(([\x80-\xff].)*)[\x80-\xff]?$/$1/;
        $str .= "...";
    }
}

2091라인은 아래와 같이 고칩니다.

MT::Template::Context->add_global_filter(trim_to => sub {
    my($str, $len, $ctx) = @_;
    if ($len < length($str)){
        $str = substr $str, 0, $len ;
        $str =~ s/(([\x80-\xff].)*)[\x80-\xff]?$/$1/;
        $str .= "...";
    }
    $str;
});

Template Main Index에서 최근 코멘트 목록을 불러오기 위해서 아래 코드를 사용합니다.

<!--//최근 코멘트 목록-->
<div class="sidetitle">
Recent Coments
</div>
<div class="side">
<MTComments lastn="5" sort_order="descend">
<MTCommentEntry>
<a href="<MTEntryLink archive_type="Individual">"><MTCommentBody
trim_to="15" remove_html="1"></a> from:<MTCommentAuthorLink
spam_protect="1"><br />
</MTCommentEntry>
</MTComments>
</div>

이제 한글이 깨끗하게 잘 잘리는군요. ^^ 저는 최근글 목록이나 최근 트랙백을 표시하는 부분에도 사용하고 있습니다.

TrackBack

TrackBack URL for this entry:
http://yongsang.com/blog/mt-tb.cgi/32

Listed below are links to weblogs that reference 한글 깨끗하게 잘라내기:

» 드디어 되었다. from DoshRock
드디어... 골칫거리들이 해결 됐다. 뭐가 그리 복잡한지.. 해결은 됐지만 아직 풀리지 않은 신비가 있다. ejino님의 블로그에서 알아낸 트랙백시에 한글 인코딩이 맞지 않아 깨지는 한글 패치를 그대로 적용했다... 결론 적으로 내 트랙백이 되질 않았었다. 문제는 그 패?.. [Read More]

» MT에서 한글 잘라네기 from cinu.net
yongsang.com에 아주 자세히 설명이 되있어서 쉽게 할수 있었다. yongsang님께 감사한다.... [Read More]

» MovableType 수정 #1 from kueilove's weblog
MT 수정시 도움 받은 곳들 MovableType Installation and Customizing for KOREAN Trackback 받으면 Entry 페이지 리빌드되도록 수정 [MT Plugin] pingedentry Archive URL 재설정 & old Link 처리 트랙백 인코딩의 구속에서 벗어나기 위한 iconv 패치 for MovableType De... [Read More]

» MovableType :: 한글 깨끗하게 잘라내기(UTF-8/EUC-KR) from Gratia's SadCafe
MT등에서 trim_to 등을 사용할 경우 한글이 깨끗이 잘라지지 않아 예상치 못한 문자가 나타나는 경우가 많습니다. 이런 문자는 웹브라우저의 인코딩설정을 자동으로 사용할 경우 엉뚱한 언어로 표현되는 문제가 발생될 수 있습니다. 다음의 방법으로 그런 문제를 해결할 ?.. [Read More]

» MT 한글 깨끗하게 잘라내기 from Online119.com Blog
아 이 방법을 몰라 한참 헤맸다-_-; 네이버로 검색하니 yongsang님 블로그가 나왔다. 감사해효~ [Read More]

Comments (6)

어,증말 바리깡으로 민것 처럼 깔끔하게 잘라졌네... 와... 넘, 이뻐요...^^

감사합니다. ^^ 저는 요즘 머리를 단정하게 잘라볼까 생각중이랍니다. ^^

이 패치가 utf-8의 경우는 제대로 먹히질 않나요?

그대로 했는데 깨끗하게 안짤리네요

utf-8 문제는 제가 거기까지 아는 바가 없어서 시원한 답변을 드리지 못하겠네요~ ^^; 죄송합니다.

검색해보니 gratia's sadcafe에 euc-kr/utf-8의 한글 잘라내기 방법이 소개되어 있습니다. 참고하시기 바랍니다.

mara:

근데요 본문에서 html태그가 그데로 보이게 하려는 어떻게 해야하죠?

태그가 적용되 버려서 내용이 이상하게 나오거든요.

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

About

This page contains a single entry from the blog posted on 2003年08月06日 22:01.

The previous post in this blog was 매트릭스2 Reloaded.

The next post in this blog is 비갠뒤 하늘을 보면서.

Many more can be found on the main index page or by looking through the archives.

Powered by
Movable Type 3.31