제로보드 utf-8 환경에서 깨짐없이 한글 자르기(cut_str 수정)
알짜정보
2007/03/16 18:32
몇일전 제로보드를 utf-8 환경으로 컨버팅 한적이 있는데.
그후에 몇가지 오류가 발견되었다.
이건 그중에 하나로 최근게시물 같은데서 문자열을 자를때 잘린 문자가 깨져서 나오는 경우이다.
php 의 strlen 으로 한글 한글자의 길이를 확인해본결과 3 이었다.
기존에 zb4 가 개발되던 euc-kr 환경은 2였기때문에 cut_str 함수를 수정해 줄필요가 있다.
수정은 아래와같이 했다.
lib.php 파일의 cut_str 함수를 아래와같이 수정한다.
function cut_str($msg,$cut_size) {
if($cut_size<=0) return $msg;
if(ereg("\[re\]",$msg)) $cut_size=$cut_size+4;
if($cut_size<=0) return $msg;
if(ereg("\[re\]",$msg)) $cut_size=$cut_size+4;
$max_size = $cut_size;
$i=0;
while(1) {
if (ord($msg[$i])>127)
$i+=3;
else
$i++;
$i=0;
while(1) {
if (ord($msg[$i])>127)
$i+=3;
else
$i++;
if (strlen($msg) < $i)
return $msg;
return $msg;
if ($max_size == 0)
return substr($msg,0,$i)."...";
else
$max_size--;
}
}
return substr($msg,0,$i)."...";
else
$max_size--;
}
}
끄읏.







댓글을 달아 주세요
감사합니다. 저도 이 문제로 신경에 거슬리고 있었는데 그렇다고 큰 문제도 아닌지라 누구에게 질문도 못하고 있었습니다. 이렇게 우연히 해결책을 발견하게 되어 정말 고맙습니다.
그런데 한 가지 질문이 있습니다만... 글을 검색할 때 2페이지 이후로도 잘 넘어가는지 궁금합니다. 제 경우 UTF-8로 변경해서인지 제목/내용/이름 가운데 무엇을 선택하든 2페이지 이후의 검색 결과가 표시되지 않습니다.(IE6에서 그렇습니다. 파폭에선 문제 없음)
아무래도 원인이 URL 주소에 keyword 값을 한글 그대로 보내버려서 인 것 같습니다만... 1페이지까지는 알파벳으로 표시하면서 왜 2페이지 이후부터는 한글 그대로 표시하는지 모르겠습니다. 혹시 이 문제 해결책을 아시면 좀 가르쳐 주시지 않겠습니까?
감사합니다. m(__)m
제 글이 도움되셨다니 다행이네요..^^;
질문해주신 문제에 대해서 확인해 봤더니
역시나 방문자님 예상대로 url 주소로 한글이 넘어가는 문제였습니다.
해결책은 제가 최근에 써 놓은 글이 있으니 확인해 보시기 바랍니다.