문자열 자르기 함수에 대해 궁금하네요.

문자열 자르기 함수에 대해 궁금하네요.

QA

문자열 자르기 함수에 대해 궁금하네요.

본문

영카트 common.lib.php 파일에 두가지 문자열 자르는 함수가 있던데요.

 

cut_str

utf8_strcut

 

어떤 차이점이 있나요?

 

모바일 화면에서 상품명이 너무 길면 주문서에서 이상하게 나와 상품명만 문자열 자르려고 하는데..

 

위 2가지 함수 중에 어느 것이 좋은지요?

 

고수님의 지도 바랍니다.

이 질문에 댓글 쓰기 :

답변 2

 lib 열어서 직접 확인해 보세요 

상황에 따라 다르거든요

 

 


//글자 수 자르기
function cut_str($str, $len, $suffix="…")
{
         $arr_str = preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY);
         $str_len = count($arr_str);
 
         if ($str_len >= $len) {
                 $slice_str = array_slice($arr_str, 0, $len);
                 $str = join("", $slice_str);
 
                 return $str . ($str_len > $len ? $suffix : '');
         } else {
                 $str = join("", $arr_str);
                 return $str;
         }
}
 
// UTF-8 문자열 자르기
// 출처 : <A HREF="https://www.google.co.kr/search?q=utf8_strcut&aq=f&oq=utf8_strcut&aqs=chrome.0.57j0l3.826j0&sourceid=chrome&ie=UTF-8" TARGET="_blank">https://www.google.co.kr/search?q=utf8_strcut&aq=f&oq=utf8_strcut&aqs=chrome.0.57j0l3.826j0&sourceid=chrome&ie=UTF-8</A>
function utf8_strcut( $str, $size, $suffix='...' )
{
                 $substr = substr( $str, 0, $size * 2 );
                 $multi_size = preg_match_all( '/[x80-xff]/', $substr, $multi_chars );
 
                 if ( $multi_size > 0 )
                         $size = $size + intval( $multi_size / 3 ) - 1;
 
                 if ( strlen( $str ) > $size ) {
						 $str = substr( $str, 0, $size );
                         $str = preg_replace( '/(([x80-xff]{3})*?)([x80-xff]{0,2})$/', '$1', $str );
                         $str .= $suffix;
                 }
 
                 return $str;
}

                         

네.. 답변 감사합니다.
그래서 문의드린겁니다.. 상황에 따라 다를거라 생각해서 그 상황이 어떤 의미인지 몰라서 문의한겁니다.
그 상황이란 서버 특성인지... 모르겠어요...

참고하세요

http://www.perl.or.kr/tipsinaction/regexp_tips/cut_korean 

 

 

답변을 작성하시기 전에 로그인 해주세요.
전체 33
QA 내용 검색

회원로그인

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