문자열 자르기 함수에 대해 궁금하네요.
본문
영카트 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;
}
!-->
답변을 작성하시기 전에 로그인 해주세요.