cut_str 코드 좀 이상해요. > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

cut_str 코드 좀 이상해요. 정보

cut_str 코드 좀 이상해요.

본문

common.lib.php에 있는 문자열자르기 함수 cut_str()을 보다가 코드 해석은 했는데, 이렇게까지 복잡하게 코딩할 필요가 있을까 싶은 의문에 이해가 좀 안가서 질문을 올립니다.


    if (strtoupper($g4['charset']) == 'UTF-8') {
        $c = substr(str_pad(decbin(ord($str{$len})),8,'0',STR_PAD_LEFT),0,2); 
        if ($c == '10') 
            for (;$c != '11' && $c{0} == 1;$c = substr(str_pad(decbin(ord($str{--$len})),8,'0',STR_PAD_LEFT),0,2)); 
        return substr($str,0,$len) . (strlen($str)-strlen($suffix) >= $len ? $suffix : ''); 

UTF-8 부분에 대해 위와같이 되어있는데,
아래와 같이 단순화 될 수 있지 않나요?

    if (strtoupper($g4['charset']) == 'UTF-8') {
      $c = ord($str{$len}); 
      while ($c > 127 && $c < 192) $c = ord($str{--$len});
      return substr($str,0,$len) . (strlen($str)-strlen($suffix) >= $len ? $suffix: ''); 


$c 값을 내기 위해서 매번 substr(), str_pad(), decbin(), ord() 4개의 함수를 사용하는데 비해 ord()하나만 사용하면 되고, 이게 for loop에 걸리는 걸 감안해보면 연산량이 꽤 차이날 것 같은데요.

고수님들의 의견을 부탁드립니다.

댓글 전체

전체 66,558 |RSS
그누4 질문답변 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT