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에 걸리는 걸 감안해보면 연산량이 꽤 차이날 것 같은데요.

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

댓글 전체

© SIRSOFT
현재 페이지 제일 처음으로